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

如何在sql/snowflake中获取每个月的最大天数,sql,snowflake-cloud-data-platform,snowflake-schema,Sql,Snowflake Cloud Data Platform,Snowflake Schema,我试图从数据集中返回每个月的最大天数。我说max是因为它是基于mon-fri上传的。因此,如果一个月的最后一天是周六(比如2019年10月31日),那么最后上传的日期将是周五(2019年10月30日) 我已尝试按日期部分(“月”,日期)从我的_表组中选择最大(日期) 您可以使用dayofweekiso仅获取那些周一-周五交易 select max(date), month(case when date) from my_table where dayofweekiso(date) betwee

我试图从数据集中返回每个月的最大天数。我说max是因为它是基于mon-fri上传的。因此,如果一个月的最后一天是周六(比如2019年10月31日),那么最后上传的日期将是周五(2019年10月30日)


我已尝试按日期部分(“月”,日期)从我的_表组中选择最大(日期)

您可以使用
dayofweekiso
仅获取那些
周一-周五
交易

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

使用snowflake\u sample\u date有一个日期维度,对MIkes查询进行了小的更改。。1-7看起来不错

选择
最大值(d.d_日期) 从
tpcds\u sf10tcl.date\u dim d 其中DAYOFWEEKISO(d.d_日期)介于1和7之间 分组 年份(d.d_日期) ,月(d.d_日期) 订购人 最大(d_日期)

可用于动态创建排名和筛选。因此,在分区上按年份和月份排列,按日期降序,将表中每个月的最后几天排列为1

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

您当前的查询有什么问题?请向我们展示样本数据和预期结果。我同意@GMB,您的查询看起来非常好,因此问题一定在于您未披露的部分……甚至不确定此处是否需要WHERE子句。如果我理解正确的话,就不会有任何周六或周日的数据。