[SQL ] 請問計算得票率...?
看板Database (資料庫)作者SmallBeeWayn (喵喵叫的蜜蜂貓)時間17年前 (2007/04/23 14:47)推噓0(0推 0噓 0→)留言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
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):
Database 近期熱門文章
PTT數位生活區 即時熱門文章