我有一个像 down 这样的数据库:
+---+-------------+----------
|id | customer_id | store_id|
+---+-------------+----------
|1 | 1 | 1001|
|2 | 1 | 1002|
|3 | 1 | 1001|
|4 | 1 | 1003|
|5 | 2 | 1001|
|6 | 2 | 1001|
|7 | 3 | 1001|
|8 | 3 | 1002|
|9 | 3 | 1001|
|10 | 4 | 1003|
|11 | 4 | 1001|
|12 | 4 | 1002|
+---+-------------+----------
我希望计算不同的customer_id,其中购物的不同shop_id大于值1。(例如customer_id 1购物1001、1002和customer_id 4购物1001、1002、1003和customer_id 3购物1001,1002,但customer_id 2仅购物1001)
最佳答案
您可以使用嵌套查询 - 内部查询仅过滤具有多个商店 ID 的客户 ID,外部查询对它们进行计数:
SELECT COUNT(*)
FROM (SELECT customer_id
FROM my_table
GROUP BY customer_id
HAVING COUNT(DISTINCT store_id) > 1) t
请注意 group by
内部查询中已经返回不同的客户 ID,因此外部查询不需要 distinct
在其 count
打电话。
关于mysql - 我如何计算 customer_id,其中 store_id 计数超过 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37503225/