我正在尝试从数据集中返回每个月的最大天数。我说 max 是因为它基于周一至周五的上传。因此,如果该月的最后一天是星期六(比如 2019 年 10 月 31 日),那么最后上传的日期将是星期五(2019 年 10 月 30 日)。
我试过 select max(date) from my_table group by datepart('month',date);
我正在尝试从数据集中返回每个月的最大天数。我说 max 是因为它基于周一至周五的上传。因此,如果该月的最后一天是星期六(比如 2019 年 10 月 31 日),那么最后上传的日期将是星期五(2019 年 10 月 30 日)。
我试过 select max(date) from my_table group by datepart('month',date);
使用 snowflake_sample_date 有一个日期维度,对 MIkes 查询的小改动 .. 1--7 看起来不错
SELECT
MAX(d.d_date) FROM
tpcds_sf10tcl.date_dim d WHERE DAYOFWEEKISO(d.d_date) BETWEEN 1 AND 7 GROUP BY YEAR(d.d_date) , MONTH(d.d_date) ORDER BY MAX(d_date);
您可以使用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);
QUALIFY可用于动态创建排名和过滤器。因此,按年和月对分区进行排名,按日期降序将表中每个月的最后几天排名为 1。
SELECT * FROM TABLE
QUALIFY RANK() OVER(PARTITION BY YEAR(DATE), MONTH(DATE) ORDER BY DATE DESC) = 1;