說,我有兩個日期:
start_date = '2018-06-01'
end_date = '2022-10-01'
如何獲得月份表以及它們在兩個日期之間出現的次數?
我想要如下輸出:
month | count
-------------
1 | 4
2 | 4
3 | 4
4 | 4
5 | 4
6 | 5
7 | 5
8 | 5
9 | 5
10 | 5
11 | 4
12 | 4
編輯(回答評論中的問題):
- 不,我沒有帶日期的表格,如果有,我會添加有問題的
- 年份不重要,如果需要,我會提到
- 包容性,這就是為什么我給出了示例輸入和輸出來準確說明我想要什么。
uj5u.com熱心網友回復:
演示:db<>小提琴
SELECT
date_part('month', gs), -- 2
COUNT(*) -- 3
FROM generate_series( -- 1
'2018-06-01',
'2022-10-01',
interval '1 month'
) gs
GROUP BY 1 -- 3
生成給定日期之間的所有月份。這里包括給定的日期。如果要排除它們,則需要加/減一個月,例如:
generate_series( '2018-06-01' interval '1 month', '2022-10-01' - interval '1 month', interval '1 month' )提取生成日期的月份部分
將它們分組并計數。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/494380.html
標籤:sql PostgreSQL 日期
