我有一个带有架构的表(ID,日期,值,源,代码)。我想获取按日期在 sql服务器
中具有最高ID组的记录示例数据
ID|date|value|source|ticker
3|10-Dec-2017|10|a|b
1|10-Dec-2017|11|p|q
以下查询在Sqlite中有效。我们是否可以使用SqlServer做到这一点
select max(id), date, value, source, ticker from table group by date
预期收益:-
ID|date|value|source|ticker
3|10-Dec-2017|10|a|b
我还可以对具有相同模式的2个表的 UNION 进行相同的操作。
答案 0 :(得分:1)
您可以使用subquery
:
select t.*
from table t
where id = (select max(t1.id) from table t1 where t1.date = t.date);
但是,您也可以使用row_number()
函数:
select top (1) with ties *
from table t
order by row_number() over (partition by [date] order by id desc);
答案 1 :(得分:0)
您也可以像下面这样:
select t1.* from table1 t1
join (
select max(id) as id, [date] from table1
group by [date]
) as t2 on t1.id = t2.id