mysql - sql只想在另一列没问题时才计算一列

标签 mysql count

我有一个像这样的数据库:

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/

相关文章:

vb.net - 使用 linq vb.net 进行分组和计数

javascript - CKEditor 字符计数

objective-c - 在 Swift 中初始化 NSDictionary 时出现问题

mysql - SQL Join 获取帖子计数

jquery - 计算屏幕上显示的列表项目并且不溢出

mysql - 如何在 SQL 中检索具有特定数量的不同列值的行?

mysql - 如何在 MySQL 中获取并存储帖子的日期和时间?

javascript - SQL 多个多对多自引用关联 (Sequelize.js)

mysql - Codeigniter 大查询结果 result_array() result

mysql - 基于内部选择的计数