我有一个像这样的数据库:
id name job payment
1 susan job1 no
2 rob job2 no
3 mike job3 yes
4 bob job2 yes
我需要获取按工作分组的人数,但前提是他们在付款中选择"is"。 我做过这样的事情:
SELECT job, count(*) AS job FROM database GROUP BY job
结果是相同工作的人数,但我不知道如何检查另一栏(付款),只有当它是"is"时才进行计数。
希望您能帮助我,谢谢
最佳答案
您可以使用SUM
和条件:
SELECT job, SUM(payment = 'yes') AS job_cnt
FROM database
GROUP BY job;
<强> DBFiddle Demo
输出:
┌───────┬─────────┐
│ job │ job_cnt │
├───────┼─────────┤
│ job1 │ 0 │
│ job2 │ 1 │
│ job3 │ 1 │
└───────┴─────────┘
关于mysql - sql只想在另一列没问题时才计算一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52029017/