[SQL ] 請問計算得票率...?

看板Database (資料庫)作者 (喵喵叫的蜜蜂貓)時間17年前 (2007/04/23 14:47), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/2 (看更多)
系統: MySQL 4.1 & PHP 5 資料庫大致呈現這個形式 Name Round Votes A 1 2 B 1 3 C 1 1 D 2 1 E 2 1 F 2 7 G 2 3 H 2 2 如果我希望輸出成這樣 Name Round RV A 1 33.33 B 1 50 C 1 16.66 D 2 7.14 E 2 7.14 F 2 50 G 2 21.43 H 2 14.29 也就是說計算出每個人在每個Round的RV => (Votes/(同個Round的SUM)) 目前我的方法是先做一次 "SELECT Round,SUM(Votes) FROM db GROUP BY Round" 再用PHP語法 $sqlquery="CASE Round"; while(list($round,$sum)=mysql_fetch_row($datas)) { $sqlquery.=" WHEN $round THEN $sum" } 再抓回SQL "SELECT Name,Round,ROUND(Votes*100/($sqlquery END),2) AS RV FROM db" ============= 想請問一下有沒有更有效率或是能在MySQL中一次完成的作法? -- 是非題: 犬神是一部Service動畫 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.115.204.46
文章代碼(AID): #16B5Pfuj (Database)
文章代碼(AID): #16B5Pfuj (Database)