在 SQL 中,如何获取表的一列的聚合,并获取聚合的第二列附属物?

问题描述 投票:0回答:1

我不知道问这个问题的确切术语是什么(如果有人可以帮助解决这个问题,将会改进标题),所以将使用一个例子。

对于查询

select max(a), b from some_table
b
是否来自
a
为最大值的行?如果没有的话,有没有办法不用再次遍历表就可以得到它呢?例如
select a, b from some_table where a = (select max(a) from some_table) limit 1
会得到正确的结果,但(据我所知)会遍历表格两次。


示例表和结果

| a | b     |
|---+-------|
| 1 | red   |
| 1 | red   |
| 2 | green |
| 2 | green |

应该产生一个元组:

| 2 | green |
sql sqlite
1个回答
0
投票

如果您只想要一行,则具有最大

a
值:

select *
from tablename
order by a desc
limit 1
© www.soinside.com 2019 - 2024. All rights reserved.