我有一个分贝,比如:

+---+-------------+----------
|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/

10-11 12:46