我的查询:

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

10-06 01:58