我的查询:
SELECT sites.siteName, sites.siteIP, history.date
FROM sites INNER JOIN
history ON sites.siteName = history.siteName
ORDER BY siteName,date
输出的第一部分:
如何删除
siteName
列中的重复项?我只想根据date
列保留更新的内容。在上面的示例输出中,我需要第1、3、6、10行
最佳答案
这是窗口函数row_number()
派上用场的地方:
SELECT s.siteName, s.siteIP, h.date
FROM sites s INNER JOIN
(select h.*, row_number() over (partition by siteName order by date desc) as seqnum
from history h
) h
ON s.siteName = h.siteName and seqnum = 1
ORDER BY s.siteName, h.date