簡體   English   中英

如何在 sql/snowflake 中獲取每個月的最大天數

[英]How to do I get the max day of each month in sql/snowflake

我試圖從數據集中返回每個月的最大天數。 我說最大是因為它基於周一至周五的上傳。 因此,如果本月的最后一天是星期六(比如 10/31/2019),那么最后上傳的日期將是星期五(10/30/2019)。

我試過從 my_table 組中按 datepart('month',date); select max(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);

使用snowflake_sample_date 有一個日期維度,對MIkes 查詢的小改動.. 1--7 看起來不錯

選擇
MAX(d.d_date) 從
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);

QUALIFY可用於創建排名並對其進行動態過濾。 因此,按年和月在分區上排名,按日期降序排列,將表中每個月的最后幾天排名為 1。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM