sql - 计算 SQL 中特定值的重复次数
问题描述
我有这张桌子:
ID | mssg
--------
A | 1
B | 1
C | 1
A | 3
B | 2
C | 2
D | 5
...|...
我想计算每种类型有多少不同的消息,并将它们分组为每个相关的 ID。
我目前有一个工作脚本,可以成功计算每个 ID 的重复消息总数:
SELECT DISTINCT ID, COUNT(ID) AS mssg_count
FROM my_table
GROUP BY ID
ORDER BY ID
但我想修改它以计算 mssg = '1' 或 mssg = '2' 时的特定消息。
我尝试过这样的事情:
SELECT DISTINCT ID, (SELECT COUNT(mssg)
WHERE mssg = '1'
HAVING COUNT(mssg) > 1)
GROUP BY ID
FROM my_table
但是我对 SQL 缺乏经验并且遇到语法错误。
我的预期表看起来像这样:
ID | Total number of messages | Amnt of messages where mssg = 1 | mssg = 2..
------------------------------------------------------------------------------
A | 2 | 1 | 0
B | 2 | 1 | 1
C | 2 | 1 | 1
D | 1 | 0 | 0
...|..........................|.................................|............
解决方案
对于您的个人专栏。您可以使用:
sum(CASE WHEN mssg = '1' THEN 1 ELSE 0 END)
完整的 SQL:
SELECT
ID,
sum(CASE WHEN mssg = '1' THEN 1 ELSE 0 END)
FROM my_table
GROUP BY ID
推荐阅读
- android - Mockito Android 抛出验证错误,但我根本不调用验证
- python - 多项朴素贝叶斯 - sklearn
- javascript - 指针事件:无不适用于 material-ui textField 输入
- firebase - 在 Flutter/Firebase 应用上使用计时器交付编程内容
- tensorflow - 制作具有 batch_size 作为值的张量
- java - 使用 java/javafx 更改 linux 中的活动/应用程序菜单栏
- java - 在测试期间跳过执行 eclipse(或 netBeans)中的几行
- spring-boot - 条件原生查询中的注入文本 - JPA
- amazon-web-services - AWS / lambda 上带有 db 的 Web 服务
- javascript - 如何创建模板字符串以输出对象内容?