【发布时间】:2020-05-05 00:02:44
【问题描述】:
注意:这与“我想要对表格中的每个不同行进行计数”的问题不同,后者已被多次回答。这是一个过滤计数,因此查询的计数部分需要更复杂的 WHERE 子句。考虑这个数据集:
customer_id | user_id | age
-----------------------------
1 | 932 | 20
1 | 21 | 3
1 | 2334 | 32
2 | 232 | 10
2 | 238 | 28
3 | 838 | 39
3 | 928 | 83
4 | 842 | 12
我想查询此表并了解每个不同 customer_id 的 13 岁以上用户数。所以结果是:
customer_id | over_13_count
-----------------------------
1 | 2
2 | 1
3 | 2
4 | 0
我尝试过这样的事情,但它永远运行,所以我认为我做错了:
SELECT DISTINCT customer_id,
(SELECT COUNT(*) FROM mytable AS m2 WHERE m2.customer_id = m1.customer_id AND age > 13) AS over_13_count
FROM mytable AS m1
ORDER BY customer_id
【问题讨论】: