我有这样的SQL查询
SELECT TOP 1
ROW_NUMBER() OVER (ORDER BY column_date DESC) AS ROWID, *
FROM
table_report
WHERE
column_date = datepart(year,date)如果我错了,请纠正。我想取日期时间开始的年份,然后按年选择前1行。
发布于 2015-06-19 05:57:40
您可以通过在窗口函数中添加一个分区来选择每年的第一行(按所提供的顺序),然后仅在每年的第一行上进行筛选:
SELECT * FROM
(
SELECT ROW_NUMBER() OVER
(PARTITION BY datepart(year,date) ORDER BY column_date DESC) AS ROWID,
*
FROM table_report
) X
WHERE ROWID = 1;https://stackoverflow.com/questions/30930820
复制相似问题