假设有一张桌子
_ _
a 1
a 2
b 2
c 3
c 4
c 1
d 2
e 5
e 6
Run Code Online (Sandbox Code Playgroud)
如何为每个组的所有行选择不同的最小值?
因此,这里的预期结果是:
_ _
a 1
b 2
c 1
d 2
e 5
Run Code Online (Sandbox Code Playgroud)
编辑
我的实际表包含更多列,我想全部选择它们。这些行仅在最后一列(示例中的第二列)不同。我是SQL的新手,可能我的问题在它的初始视图中不正确。
实际的架构为:
| day | currency ('EUR', 'USD') | diff (integer) | id (foreign key) |
Run Code Online (Sandbox Code Playgroud)
是重复的对(day, currency),相差(diff, id)。我想查看一个表,其中具有唯一表对(day, currency),diff并且原始表中的表对最少。
谢谢!
在您的情况下,就这么简单:
select column1, min(column2) as column2
from table
group by column1
Run Code Online (Sandbox Code Playgroud)
对于两列以上,我可以建议:
select top 1 with ties
t.column1, t.column2, t.column3
from table as t
order by row_number() over (partition by t.column1 order by t.column2)
Run Code Online (Sandbox Code Playgroud)
看一下这篇文章/sf/answers/955700301/
| 归档时间: |
|
| 查看次数: |
6124 次 |
| 最近记录: |