提前感谢您查看我的问题。我想要的是获取用户交易历史记录并将所有总订单的收入相加,然后将这些总订单分组为细分,并计算每个细分受众群的数量。
我基本上使用单个表来汇总收入数据。所有意图和目的的 REVENUE 表都是这样构建的。
列|样本数据
ID | 123
ORDER_NUMBER | 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个
所以我要做的是将 ID Total_rev 分组到3个预定义的细分中,然后我想计算每个细分中的用户ID。
我的细分受到 Total_Rev 的定义,如下所示:
低:1-5
Med:6-20
高:21岁以上
我只是不确定如何创建适当的SQL来执行此分段练习。再次感谢您看一下,我很乐意提供更多详细信息或回复有关此问题的任何反馈。
谢谢, -Chris
答案 0 :(得分:0)
试试这样:
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
我认为可以有更优雅的方式来做同样的事情,但我的陈述也应该起作用=)