gpt4 book ai didi

mysql - 循环的替代方案

转载 作者:行者123 更新时间:2023-11-29 08:26:55 25 4
gpt4 key购买 nike

我正在尝试生成一个简单的报告,该报告将显示拥有多个不同品牌的客户数量。我编写的以下查询一次生成一个所需的数字。我尝试编写一个循环,但它需要很长时间。有替代方案吗?

SELECT COUNT(DISTINCT customer_id) 
FROM
(
SELECT customer_id,COUNT(DISTINCT brand) AS no_of_customers
FROM table_A
WHERE brand_id != 10
GROUP BY customer_id
HAVING COUNT(DISTINCT brand) =1
ORDER BY customer_id) as t1;

这样做的目的是为我提供不同品牌总数 =1 的客户数量。我将品牌数量更改为 2,3,依此类推。请告诉我是否有办法自动执行此操作。

非常感谢。

最佳答案

使用第二级GROUP BY将它们全部包含在一个查询中,而不是循环。

SELECT no_of_brands, COUNT(*) no_of_customers
FROM (SELECT customer_id, COUNT(DISTINCT brand) no_of_brands
FROM Table_A
WHERE brand_id != 10
GROUP BY customer_id) x
GROUP BY no_of_brands

您的外部查询中也不需要 DISTINCT,因为内部查询的分组保证了客户 ID 是不同的。

关于mysql - 循环的替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17704674/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com