优雅地使用 SQL LAG() 函数返回上个月的最后一个工作日



我必须创建一个查询,在其中我必须找到上个月的最后一个工作日。我知道如何使用具有IsWorkingday标志的日期维度执行此操作,并从今天连接到一个月前的日期,然后从那里找到max(dateid)。

当我这样做时,我在想不应该有一个更优雅的解决方案,比如使用具有特定分区依据和排序依据的LAG()

我玩了一段时间,但找不到解决方案。有什么想法吗?

这不是 LAG() 的真正用途。 它更适合计算运行总计之类的事情。 如果您想更好地理解,请在 SQL Server 中搜索 LAG() 函数。

一个可能更优雅的解决方案是获取当月的第一个工作日,然后选择它之前的第一个工作日。

如果不了解表结构和数据,就很难更具体。

最新更新