gpt4 book ai didi

sql - 几年内每周分组(postgresql)

转载 作者:行者123 更新时间:2023-11-29 12:58:13 25 4
gpt4 key购买 nike

这个查询每周正确分组,但排序很奇怪:

SELECT    date_part('week' ,date), SUM(qty)
FROM hr
WHERE date between '2016-01-01' and '2016-01-31'
GROUP BY date_part('week', date)
ORDER BY 1

这个查询的结果是:

wrong sort

应该是这样的:

correct sort

如何确定一周属于哪一年?

欢迎任何提示或线索。

TIA,

最佳答案

使用 to_char() 将年份 格式化为单个可排序值:

SELECT to_char(date '2016-01-01', 'iyyy-iw'), SUM(qty)
FROM hr
WHERE date between '2016-01-01' and '2016-01-31'
GROUP BY to_char(date '2016-01-01', 'iyyy-iw')
ORDER BY 1

格式掩码iyyyiw 使用ISO week numbering您似乎在期待(例如,将 2015-53 分配给 2016-01-01)。如果你不想,你需要切换到 yyyyww 而不是

关于sql - 几年内每周分组(postgresql),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37520523/

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