sql仅在另一列正常的情况下才希望计算一列

时间:2018-08-26 18:10:50

标签: mysql count

我有一个这样的数据库:

id  name   job   payment
1   susan  job1  no
2   rob    job2  no
3   mike   job3  yes
4   bob    job2  yes

我需要按职位分组的人数,但前提是他们的薪水是可以的。 我做了这样的事情:

SELECT job, count(*) AS job FROM database GROUP BY job

结果是同一工作人员的人数,但我不知道如何检查另一栏(薪水),只有在“是”的情况下才可以计数。

希望你能帮助我,谢谢

2 个答案:

答案 0 :(得分:0)

您可以使用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 │
└───────┴─────────┘

答案 1 :(得分:0)

您可以简单地使用where子句

SELECT job, count(*) AS job
FROM database
WHERE payment="yes"
GROUP BY job