如何在sql / snowflake中获得每个月的最大天数

时间:2019-12-04 00:55:34

标签: sql snowflake-data-warehouse snowflake-schema

我正在尝试从数据集中返回每月的最大天数。我说max是因为它是基于mon-fri上传的。因此,如果一个月的最后一天在星期六(例如10/31/2019),则最后一个上载日期将在星期五(10/30/2019)。

我尝试通过datepart('month',date);从my_table组中选择max(date);

3 个答案:

答案 0 :(得分:0)

您可以使用dayofweekiso仅获得那些monday-friday交易。

select max(date), month(case when date) from my_table 
where dayofweekiso(date) between 1 and 5
group by year(date), month(date);

答案 1 :(得分:0)

使用snowlight_sample_date具有日期维度,对MIkes查询进行小的更改。.1--7看起来不错

SELECT
      最大值(d.d_date)   来自
      tpcds_sf10tcl.date_dim d   1和7之间的DAYOFWEEKISO(d.d_date)   通过...分组       YEAR(d.d_date)       ,MONTH(d.d_date)   订购       MAX(d_date);

答案 2 :(得分:0)

QUALIFY可用于创建排名并即时对其进行过滤。因此,按年份和月份对分区进行排序,按日期降序对表中每个月的最后几天进行排序,将其排序为1。

SELECT * FROM TABLE
QUALIFY RANK() OVER(PARTITION BY YEAR(DATE), MONTH(DATE) ORDER BY DATE DESC) = 1;