根据日期列中的年份和月份进行计数

Taking Count Based On Year and Month from Date Columns

我想根据起始日期和截止日期进行计数。使用 from 和 to date 我试图计算年份和月份,然后根据月份和年份计算。有人可以建议我如何实现这个。

Database : Snowflake

你想多做少做这个的解决方法

但这里让我为您完成所有工作:

WITH data_table(start_date, end_date) as (
    SELECT * from values
        ('2022-01-15'::date, '2022-02-12'::date),
        ('2021-12-25'::date, '2022-03-18'::date),
        ('2022-02-25'::date, '2022-03-06'::date),
        ('2021-10-20'::date, '2022-01-07'::date)

), large_range as (
    SELECT row_number() over (order by null)-1 as rn
    FROM table(generator(ROWCOUNT => 1000))
), pre_condition as (
    SELECT 
        date_trunc('month', start_date) as month_start
        ,datediff('month', month_start, date_trunc('month', end_date)) as m
    FROM data_table
)
SELECT
    to_char(dateadd('month', r.rn, d.month_start),'MON-YY') as month_yr
    ,count(*) as count
FROM pre_condition as d
JOIN large_range as r ON r.rn <= d.m
GROUP BY 1;
MONTH_YR COUNT
Jan-22 3
Dec-21 2
Feb-22 3
Oct-21 1
Nov-21 1
Mar-22 2