我有一个分贝,比如:
+---+-------------+----------
|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|
+---+-------------+----------
我希望在购物不同商店的不同客户的id值大于1的情况下计算不同的客户id值。(对于exp.customer_id 1 shopping 1001,1002和customer_id 4 shopping 1001,1002,1003和customer_id 3 shopping 10011002,但是customer_id 2只是shopping 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/