sql - 查找一列中与另一列中的特定行值相关的相同行数

标签 sql database select sql-server-2008-r2

我正在尝试查询有多少人处于状态 3 的事件。我认为我需要 COUNT 或 SUM,但自从我之前这样做以来已经很长时间了,而且我已经尝试过搜索了很多,但我仍然很困惑。假设我有以下内容。

事件表:

activity_id  status
1             3
2             3
3             1

Person_activity表:

person_id  activity_id
1            1
1            2
2            2
2            3 
3            3

我想要输出查询:

person_id   no_of_status_3
1             2
2             1
3             0

如有任何建议,我们将不胜感激。提前致谢。

最佳答案

这应该做:

SELECT  PA.person_id,
        COUNT(A.activity_id) no_of_status_3
FROM Person_activity PA
LEFT JOIN ( SELECT *
            FROM Activity
            WHERE status = 3) A
    ON PA.activity_id = A.activity_id
GROUP BY PA.person_id

Here is an sqlfiddle与这个演示。结果是:

╔═══════════╦════════════════╗
║ PERSON_ID ║ NO_OF_STATUS_3 ║
╠═══════════╬════════════════╣
║         1 ║              2 ║
║         2 ║              1 ║
║         3 ║              0 ║
╚═══════════╩════════════════╝

关于sql - 查找一列中与另一列中的特定行值相关的相同行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19964139/

相关文章:

php - 尝试将我的日期转换为日期时间时出错

mysql 查询连接两个表

mysql - 使用 MySQL 中的存储过程参数限制选定的行数

php - 如何在 MySQL 查询中包含 PHP 变量

sql - 如果我无法向其中添加任何用户,那么 Azure Synapse 中的角色有什么用?

sql - 我应该如何组织我的主 ddl 脚本

mysql - 为mysql数据库表设置日期

database - MongoDB 数据完整性

mysql - 如何查询具有唯一标识符的行及其各自的最大值?

select - DOJO Datagrid 通过按钮删除行