我有一個在field2
和field1
具有重複值的表具有我想保留在查詢中的值。分組依據包括非聚合字段
field1 field2
Bob 2
Bob 2
Bob 3
Bob 3
此查詢使用GROUP BY子句:
select field2
rom table
group by field2
大家都知道,我不能在select field1
。我需要在我的輸出中包含field1
。不知道如何做到這一點。
我有一個在field2
和field1
具有重複值的表具有我想保留在查詢中的值。分組依據包括非聚合字段
field1 field2
Bob 2
Bob 2
Bob 3
Bob 3
此查詢使用GROUP BY子句:
select field2
rom table
group by field2
大家都知道,我不能在select field1
。我需要在我的輸出中包含field1
。不知道如何做到這一點。
你想從field1
保存什麼? MIN值?
select field2, min(field1) field1
from table
group by field2
也許最大值?
select field2, max(field1) field1, count(field2) total
from table
group by field2
你必須對它進行聚合,否則就沒有意義。考慮一下這個數據:
field1 field2
Bob 2
Jim 2
Tim 2
好了,你想用field1
field2
。您按field2
進行分組,以便在輸出中爲您提供一行field2
。你不能在行中擁有全部3個(Bob,Jim,Tim),這就是爲什麼你必須對它進行聚合才能邏輯地選擇一個值(或者是多個數值的總和,例如數值列的平均值)。
另一種選擇是
select *
from table T
join
(select field2
from table
group by field2)A
on T.field2=A.field2