如何编写 SQL 查询?
How to write the SQL query?
假设我有以下 table,我如何编写 SQL 查询来找到一组结果,这些结果是每个 b 的最小 c?例如,我想要 (7, 45) 和 (16, 69) 用于以下 table。
a | b | c
-----+--------+----
3 | 7 | 53
2 | 7 | 49
1 | 7 | 45
5 | 7 | 61
13 | 16 | 69
15 | 16 | 77
6 | 7 | 65
4 | 7 | 57
14 | 16 | 73
您可以使用 Postgres 中的 distinct on
执行此操作:
select distinct on (b) b, c
from t
order by b, c asc;
另一个选择是 group by
:
select b, min(c)
from t
group by b;
你可以试试看哪个更快。
只需使用GROUP BY
:
SELECT b, MIN(c)
FROM yourTable
GROUP BY b
假设我有以下 table,我如何编写 SQL 查询来找到一组结果,这些结果是每个 b 的最小 c?例如,我想要 (7, 45) 和 (16, 69) 用于以下 table。
a | b | c
-----+--------+----
3 | 7 | 53
2 | 7 | 49
1 | 7 | 45
5 | 7 | 61
13 | 16 | 69
15 | 16 | 77
6 | 7 | 65
4 | 7 | 57
14 | 16 | 73
您可以使用 Postgres 中的 distinct on
执行此操作:
select distinct on (b) b, c
from t
order by b, c asc;
另一个选择是 group by
:
select b, min(c)
from t
group by b;
你可以试试看哪个更快。
只需使用GROUP BY
:
SELECT b, MIN(c)
FROM yourTable
GROUP BY b