作者SmallBeeWayn (喵喵叫的蜜蜂猫)
看板Database
标题[SQL ] 请问计算得票率...?
时间Mon Apr 23 14:47:02 2007
系统: 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