我有一个包含重复值的表,field2
并且field1
有我想在查询中保留的值。
field1 field2
Bob 2
Bob 2
Bob 3
Bob 3
此查询使用 group by 子句:
select field2
rom table
group by field2
众所周知,我不能包含field1
在选择中。我需要包含field1
在我的输出中。不知道如何做到这一点。
我有一个包含重复值的表,field2
并且field1
有我想在查询中保留的值。
field1 field2
Bob 2
Bob 2
Bob 3
Bob 3
此查询使用 group by 子句:
select field2
rom table
group by field2
众所周知,我不能包含field1
在选择中。我需要包含field1
在我的输出中。不知道如何做到这一点。
你想保留field1
什么?最小值?
select field2, min(field1) field1
from table
group by field2
也许是 MAX 值?
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