gpt4 book ai didi

sql - SQL获取数据集中每个月的最大日期

转载 作者:行者123 更新时间:2023-12-02 05:46:21 25 4
gpt4 key购买 nike

除其他字段外,我还有一个带有INT ID和DATETIME日期的表。每个工作日(不保证)在此表中插入行,并且其他几个表也将此ID用作外键。

我的问题是,如何获取每个月的最大日期的ID,然后可以将其用于加入其他数据表?例如,如果该流程今天运行,我希望查看1月31日,2月28日,...,10月31日,11月23日的数据。

我正在使用SQL Server 2005。

最佳答案

CREATE TABLE #foo (id INT, d DATETIME);

INSERT #foo(id,d) SELECT 1, '20091101'
UNION ALL SELECT 2, '20091102'
UNION ALL SELECT 3, '20091006'
UNION ALL SELECT 4, '20091001'
UNION ALL SELECT 5, '20091002'
UNION ALL SELECT 6, '20090904';

SELECT d, id
FROM
(
SELECT d, id, rn = ROW_NUMBER() OVER
(PARTITION BY DATEDIFF(MONTH, '20000101', d)
ORDER BY d DESC)
FROM #foo
) AS x
WHERE x.rn = 1
ORDER BY x.d;

DROP TABLE #foo;

关于sql - SQL获取数据集中每个月的最大日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1786564/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com