您好我正在处理一个特定情况,我需要在最小值可以重复时找到同一记录的最小值和另一个列值
Table A
ColumnA ColumnB ColumnC
1 10 07/21/2017
1 9 07/22/2017
1 9 07/23/2017
2 20 07/23/2017
2 20 07/24/2017
3 15 07/21/2017
3 15 07/21/2017
The output should be
ColumnD COlumnE ColumnF
1 9 07/23/2017
2 20 07/24/2017
3 15 07/21/2017
在找到最小值及其相关的最新日期。
答案 0 :(得分:0)
您可以使用聚合进行此操作,但使用row_number()
:
select t.*
from (select t.*, row_number() over (partition by D order by B) as seqnum
from t
) t
where seqnum = 1;
答案 1 :(得分:0)
由于样本结果是columnC的columnB和MAX的最小值,因此可以使用以下SQL
SELECT t.*
FROM (SELECT columnA,
columnB,
columnC,
row_number() OVER (PARTITION BY columnA ORDER BY columnB, MAX(columnC) DESC) rmin
FROM agg_dur
GROUP BY columnA,
columnB,
columnC
) t
WHERE t.rmin = 1
结果
columnA columnB columnC rmin
1 9 2017-07-23 1
2 20 2017-07-24 1
3 15 2017-07-21 1