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

Mysql sql只想在另一列正常的情况下对一列进行计数,mysql,count,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 我需要得到的人数组的工作,但只有当他们有是在付款。 我做过这样的事情: id name job payment 1 susan job

我有这样一个数据库:

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
我需要得到的人数组的工作,但只有当他们有是在付款。 我做过这样的事情:

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
结果是拥有相同工作的人数,但我不知道如何检查另一列(付款),只有当它是“是”时才进行计数


希望您能帮助我,谢谢

您可以使用
SUM
和条件:

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

输出:

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

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

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

where payment=“yes”
?@Chefuss。您希望结果集看起来像什么?请编辑问题并将其显示为表格。谢谢卢卡斯!!你不到一秒钟就解决了我所有的问题!!非常感谢。这真是太好了@切福斯很高兴我能帮忙。请阅读