sql只想在另一列正常的情况下对一列进行计数

kx5bkwkv  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(205)

我有这样一个数据库:

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

结果是有相同工作的人数,但我不知道如何检查其他栏(付款),只有当它是“是”的计数。
希望你能帮我,谢谢

6yjfywim

6yjfywim1#

您可以简单地使用where子句,如下所示

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

yhqotfr82#

你可以用 SUM 和条件:

SELECT job, SUM(payment = 'yes') AS job_cnt
FROM database
GROUP BY job;

dbfiddle演示
输出:

┌───────┬─────────┐
│ job   │ job_cnt │
├───────┼─────────┤
│ job1  │       0 │
│ job2  │       1 │
│ job3  │       1 │
└───────┴─────────┘

相关问题