[英]Add a column with the max value of the group
我想添加一個額外的列,其中每個組(ID)的最大值將出現。
表格如下所示:
select ID, VALUE from mytable
ID值
1 4
1 1
1 7
2 2
2 5
3 7
3 3
這是我想要得到的結果:
ID VALUE個最大值
1 4 7
1 1 7
1 7 7
2 2 5
2 5 5
3 7 7
3 3 7
提前謝謝你的幫助!
您先前的問題表明您正在使用SQL Server,在這種情況下,您可以使用窗口函數 :
SELECT ID,
Value,
MaxValue = MAX(Value) OVER(PARTITION BY ID)
FROM mytable;
根據您對有關第一個求和值的另一個答案的評論,您可能需要使用子查詢才能實際獲得此結果:
SELECT ID,
Date,
Value,
MaxValue = MAX(Value) OVER(PARTITION BY ID)
FROM ( SELECT ID, Date, Value = SUM(Value)
FROM mytable
GROUP BY ID, Date
) AS t;
不需要在子選擇中使用GROUP BY。
select ID, VALUE,
(select MAX(VALUE) from mytable where ID = t.ID) as MaxValue
from mytable t
嘗試使用子選擇並分組,然后獲取該組的最大值:
select
ID,
VALUE,
(select MAX(VALUE)
from mytable
group by ID
having ID = t.ID
) as max_values
from mytable t
編輯:
我構建了一個SQL提琴 ,它表明我的解決方案有效,而且VDohnal是正確的並且不需要分組依據,因此我會投票支持他的答案。
使用此查詢。
SELECT ID
,value
,(
SELECT MAX(VALUE)
FROM GetMaxValue gmv
WHERE gmv.ID = gmv1.ID
GROUP BY ID
) as max_value
FROM GetMaxValue gmv1
ORDER BY ID
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.