如何最大一列而不是最大另一列以避免重复组合SQL

一个 b c
ID1 日期 1 5
ID1 日期2 5
ID2 日期 3 4
ID2 日期 4 4
ID3 日期 5 5
ID4 Date6​​d> 6
ID5 Date7 2
ID6 Date8 2

a 是一个 ID(字符串) b 是日期 c 是一个字符串 d 是一个整数

这是我正在使用的 SQL 查询

select S."a","b","c" from
    (select max("d"),"a"
    from public."x"
    group by "a") F
    join "x" S on F."max" = S."d"
    and S."a" = F."a"
    LIMIT 10;

我如何只在我的表中保留 a 和 c 的唯一配对。这样保留的行是与后来的 b 值(较晚日期)的配对?例如,如果表中的 Date1 晚于表中的 date2,我只想包含包含 Date1 的 ID1/C 组合,而不是包含包含 Date2 的 ID1/C 组合。

我是 Sql 的新手,感谢您的耐心等待!

iCMS 回答:如何最大一列而不是最大另一列以避免重复组合SQL

select a,c,max(b) from 
(<your query>) as Q
group by a,c

假设上面有一个限制为 10 以保持简单。如果你把它放在那里而没有顺序,你只会得到一些随机 10 的分组。

如果你真的想要 10,你需要将 TOP 移到内部查询之外并添加一个 ORDER BY 以便它选择一个有用的 10。

本文链接:https://www.f2er.com/143465.html

大家都在问