这里的交易:我有一个表,其中有一个路径列和另一个日期列。因为我是sql世界的新手,所以我不确定什么语句更适合这个问题。它必须给我:
如果date为空,则路径列的值或;
如果date不为null,则为在其date列中具有最新日期值的path列的值。
需要注意的是,表最后不能有任何重复的路径。
表当前的外观示例:
path1 |----------------------------|
path2 |----------------------------|
path3 |2020-06-04 00:00:00|
path3 |2020-06-03 00:00:00|
path3 |----------------------------|
现在我有一个部分解决了问题的查询,它是:
select path_column, date_column
from my_table a
where a.date_column = (select max(date_column)
from my_table b
where a.path_column = b.path_column)
or date_column IS NULL
以上查询结果:
path1 |----------------------------|
path2 |----------------------------|
path3 |2020-06-04 00:00:00|
path3 |----------------------------|
我需要它看起来像这样:
path1 |----------------------------|
path2 |----------------------------|
path3 |2020-06-04 00:00:00|
我的组织目前正在使用sql server 2014。祝您有个美好的一天!
2条答案
按热度按时间ozxc1zmp1#
使用
row_number()
:uemypmqf2#
你可以用
Group By
clause:-有关演示数据,请访问此链接