gpt4 book ai didi

sql - 使用 SQL 查找超过 X 个订单的客户总数

转载 作者:行者123 更新时间:2023-11-29 05:44:45 24 4
gpt4 key购买 nike

在尝试提出查询以在我的订单数据库上运行统计信息时,我一直在用我有限的 SQL 知识绞尽脑汁。

表 ORDERS 的布局如下:

CustomerID ProductID (etc)
1 10
1 10
1 11
2 10
4 9

每次购买都记录有客户 ID 和产品 ID - 同一个客户可以有多个记录,甚至同一个客户和产品可以有多个记录。

我需要提出一个查询,可以返回在 X 和 X 种不同产品之间购买的客户数量 - 例如,3 名客户购买了少于 5 种不同的产品,10 名购买了 5-10 种不同的产品,1 名购买了超过 10 种不同的产品。

我很确定这与派生表有关,但高级 SQL 对我来说是一门新手艺。任何帮助将不胜感激!

最佳答案

试试这个:

SELECT T1.products_bought, COUNT(T2.cnt) AS total
FROM (
SELECT '<5' AS products_bought, 0 AS a, 4 AS b
UNION ALL
SELECT '5-10', 5, 10
UNION ALL
SELECT '>10', 11, 999999
) T1
LEFT JOIN
(
SELECT COUNT(DISTINCT ProductID) AS cnt
FROM ORDERS
GROUP BY CustomerID
) T2
ON T2.cnt BETWEEN T1.a AND T1.b
GROUP BY a, b

结果:

products_bought  total
<5 3
5-10 0
>10 0

关于sql - 使用 SQL 查找超过 X 个订单的客户总数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3375883/

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