如何最大化一列而不是最大化另一列以避免重复组合 SQL
How to max one column than max another column to avoid repeated combinations SQL
一个
b
c
ID1
日期 1
5
ID1
日期 2
5
ID2
日期 3
4
ID2
日期 4
4
ID3
日期 5
5
ID4
日期 6
6
ID5
日期 7
2
ID6
日期 8
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;
如何在 table 中只保留 a 和 c 的唯一配对。这样保留的行是与较晚的 b 值(较晚的日期)的配对?例如,如果 table 中的 Date1 晚于 table 中的 date2,我只想包括包含 Date1 的 ID1/C 组合,而不是还包括 ID1/C 组合包含 Date2.
我是 Sql 的新手,感谢您的耐心等待!
select a,c,max(b) from
(<your query>) as Q
group by a,c
为了简单起见,假设上面的限制为 10。如果你把它放在那里而不按顺序排列,你只会随机分组 10。
如果你真的想要 10,你需要将 TOP 移到内部查询之外 并添加一个 ORDER BY
以便它选择一个有用的 10。
一个 | b | c |
---|---|---|
ID1 | 日期 1 | 5 |
ID1 | 日期 2 | 5 |
ID2 | 日期 3 | 4 |
ID2 | 日期 4 | 4 |
ID3 | 日期 5 | 5 |
ID4 | 日期 6 | 6 |
ID5 | 日期 7 | 2 |
ID6 | 日期 8 | 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;
如何在 table 中只保留 a 和 c 的唯一配对。这样保留的行是与较晚的 b 值(较晚的日期)的配对?例如,如果 table 中的 Date1 晚于 table 中的 date2,我只想包括包含 Date1 的 ID1/C 组合,而不是还包括 ID1/C 组合包含 Date2.
我是 Sql 的新手,感谢您的耐心等待!
select a,c,max(b) from
(<your query>) as Q
group by a,c
为了简单起见,假设上面的限制为 10。如果你把它放在那里而不按顺序排列,你只会随机分组 10。
如果你真的想要 10,你需要将 TOP 移到内部查询之外 并添加一个 ORDER BY
以便它选择一个有用的 10。