我正在尝试从数据集中返回每月的最大天数。我说max是因为它是基于mon-fri上传的。因此,如果一个月的最后一天在星期六(例如10/31/2019),则最后一个上载日期将在星期五(10/30/2019)。
我尝试通过datepart('month',date);从my_table组中选择max(date);
答案 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;