gpt4 book ai didi

sql: 按不同部分计算 um_no 的数量,按小时累计

转载 作者:行者123 更新时间:2023-11-29 14:14:37 27 4
gpt4 key购买 nike

无特定函数如何按不同段数和按小时累计多少um_no

原创:

+-------+------+------+-----+
| um_no | nums | hour | day |
+-------+------+------+-----+
| mary | 3 | 8 | 1 |
| john | 6 | 8 | 1 |
| peter | 2 | 8 | 1 |
| jason | 1 | 8 | 1 |
| mary | 5 | 9 | 1 |
| john | 6 | 9 | 1 |
| peter | 6 | 9 | 1 |
| jason | 1 | 9 | 1 |
| mary | 5 | 10 | 1 |
| john | 4 | 10 | 1 |
| peter | 2 | 10 | 1 |
| jason | 4 | 10 | 1 |
+-------+------+------+-----+

想要:

+-----+------+---------+----------+-----------+----------+
| day | hour | nums0_5 | nums5_10 | nums10_15 | nums15up |
+-----+------+---------+----------+-----------+----------+
| 1 | 8 | 3 | 1 | 0 | 0 |
| 1 | 9 | 1 | 2 | 1 | 0 |
| 1 | 10 | 0 | 2 | 1 | 1 |
+-----+------+---------+----------+-----------+----------+

最佳答案

你可以尝试.. 与 gordon 的建议一起使用,这真的很棒..

select
day,
hour,
count(*) filter (where sum_nums >= 0 and sum_nums <= 5) as nums0_5,
count(*) filter (where sum_nums >= 5 and sum_nums <= 10) as nums5_10,
count(*) filter (where sum_nums >= 10 and sum_nums <= 15) as nums10_15,
count(*) filter (where sum_nums >= 15) as nums15up
from
(select
*,
sum(nums) over (partition by um_no, day order by hour) as sum_nums
from
tbl) t
group by
day,
hour

你可以在这里看到 DEMO

关于sql: 按不同部分计算 um_no 的数量,按小时累计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53423613/

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