提前感谢您查看我的问题。我想做的是获取用户交易历史记录,并将其所有总订单的收入相加,然后将这些总订单分组,并计算每个细分市场中有多少用户。
我基本上是用一张表来汇总收入数据。收入表的所有意图和目的都是这样构建的。
列|示例数据
ID | 123
订单编号| 123ABC
收入|10
每个记录都是这样的结构,每次购买都有一个单独的记录。我使用以下SQL按ID 聚合收入
SELECT ID, SUM(ROUND(REVENUE)) as Total_Rev
FROM REVENUE
GROUP BY ID
ORDER BY ID
我这样获取和输出
ID|Total_Rev
1002436|11
1002437|12
1002438|5
10024399|2
100244|4
10024544|21
10024584|16
10024624|4
1002478|8
10024789|12
10024843|4
10024944|9
因此,我要做的是通过Total_rev将ID的分组为3个预定义的分段,然后我想计算每个分段中的用户ID。
我的分段由Total_Rev定义,如下所示:
低:1-5
Med:6-20
高:21+
我只是不知道如何创建合适的SQL来进行这个分段练习。再次感谢您的关注,我很乐意提供更多细节或回应有关此问题的任何反馈。
谢谢,-Chris
这样试试:
SELECT ID, LMH FROM (
SELECT ID, SUM(ROUND(REVENUE)) as Total_Rev, 'LOW' as LMH
FROM REVENUE
GROUP BY ID
HAVING Total_Rev > 0 AND Total_Rev <= 5
UNION ALL
SELECT ID, SUM(ROUND(REVENUE)) as Total_Rev, 'Med' as LMH
FROM REVENUE
GROUP BY ID
HAVING Total_Rev > 5 AND Total_Rev <= 20
UNION ALL
SELECT ID, SUM(ROUND(REVENUE)) as Total_Rev, 'High' as LMH
FROM REVENUE
GROUP BY ID
HAVING Total_Rev > 20) as subquery
ORDER BY ID
我认为还有更优雅的方法可以做到这一点,但我的声明也应该有效=)