首页 > 解决方案 > Snowflake SQL - 将 mmddyyyy 转换为 mmyyyy,然后按 mmyyyy 分组

问题描述

在雪花 sql 中工作。我有一个日期字段,即 mm-dd-yyyy。我想将其转换为 mm-yyyy,然后在 mm-yyyy 级别对查询的其余部分进行分组。

我有:

select
    SFDC_ACCOUNT_KEY,
    date_trunc('month',DATE_CURRENT) as mm_yyyy,
    max(ACTIVE_COMMERCIAL_UNITS) as max_active_commercial_units,
    max(ACTIVE_HOA_UNITS) as max_active_hoa_units,
    max(ACTIVE_RESIDENTIAL_UNITS) as max_active_res_units,
    max(TOTAL_ACTIVE_UNITS) as max_total_active_units
FROM SHARED.CUSTOMERS_DIM
group by sfdc_account_key, date_current
order by sfdc_account_key, date_current;

因为原始日期是 mm-dd-yyyy,所以当我希望它以 mm-yyyy 级别包装时,我仍在返回日级别数据集(原始表位于 mm-dd-yyyy 级别)。

这让我发疯了,因为我确信这很简单,但为时已晚,我很困惑。

任何帮助将不胜感激。

标签: sqldatetruncateto-datesnowflake-cloud-data-platform

解决方案


使用date_trunc('month',DATE_CURRENT)而不是date_current分组

select
    SFDC_ACCOUNT_KEY,
    date_trunc('month',DATE_CURRENT) as mm_yyyy,
    max(ACTIVE_COMMERCIAL_UNITS) as max_active_commercial_units,
    max(ACTIVE_HOA_UNITS) as max_active_hoa_units,
    max(ACTIVE_RESIDENTIAL_UNITS) as max_active_res_units,
    max(TOTAL_ACTIVE_UNITS) as max_total_active_units
FROM SHARED.CUSTOMERS_DIM
group by sfdc_account_key, date_trunc('month',DATE_CURRENT)
order by sfdc_account_key, date_trunc('month',DATE_CURRENT)

推荐阅读