在sql查询中进行计算

时间:2016-08-20 21:57:02

标签: mysql

我一直试图在sql查询中进行计算。 我有桌子出席,看起来像这样:

roll   | class_id | status 
abc    |     1    |   0
qwe    |     1    |   0
zxc    |     2    |   1
xcv    |     1    |   1
mnb    |     2    |   1
poi    |     1    |   1
lkj    |     2    |   0

我必须在这里申请公式:

att= (count where roll="abc" status = "1" /  count where roll="abc" status = "1" + count where roll="abc" status = "0") * 100

然后显示所有超过75%的卷

roll |   att
abc  |   80
xyz  |   100

我在php中获取值后正在进行此计算。但现在我需要在查询中完成此操作。

我是单独做的
select * from attendance where status="0" and roll="abc"

然后再次为status="1"

执行此操作

有人可以解释一下吗? 我该如何处理查询?

1 个答案:

答案 0 :(得分:2)

您可以使用SUM()来获取与条件匹配的行的总数,因为当条件为真时,条件的计算结果为1

SELECT roll, ROUND(SUM(status = 1)/COUNT(*) * 100) AS att
FROM attendance
GROUP BY roll
HAVING att > 75