如何按指定列分组统计目标列中数值大于1的记录数
解决方案
输入数据表
| date | fruit | code | No |
|---|---|---|---|
| 2022-10-18 | Apple | 4052 | 1 |
| 2022-10-18 | Apple | 0216 | 3 |
| 2022-10-18 | Apple | 1444 | 4 |
| 2022-10-18 | Mango | 3442 | 1 |
| 2022-10-18 | Mango | 4152 | 6 |
需求
按date和fruit列分组,统计每组中No列数值大于1的记录数量。
实现代码(SQL)
SELECT date, fruit, COUNT(CASE WHEN No > 1 THEN 1 END) AS No FROM your_table_name GROUP BY date, fruit;
说明
- 用
CASE WHEN筛选出No大于1的记录,符合条件返回1,否则返回NULL; COUNT函数会忽略NULL值,仅统计符合条件的记录数;- 按
date和fruit分组后,即可得到每个分组的目标统计结果。
输出结果表
| date | fruit | No |
|---|---|---|
| 2022-10-18 | Apple | 2 |
| 2022-10-18 | Mango | 1 |
内容的提问来源于stack exchange,提问作者Tulips
相关产品推荐
相关产品推荐

