我在field2
中有一个包含重复值的表,field1
包含我想在查询中保留的值。
field1 field2
Bob 2
Bob 2
Bob 3
Bob 3
此查询使用group by子句:
select field2
rom table
group by field2
众所周知,我不能在选择中包含field1
。我需要在输出中包含field1
。不知道如何做到这一点。
答案 0 :(得分:2)
您希望保留field1
的内容? MIN值?
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),这就是为什么你必须对它进行聚合以逻辑上只选择一个值(或几个聚合,例如数字列的平均值)的原因)。
答案 1 :(得分:0)
另一种选择是
select *
from table T
join
(select field2
from table
group by field2)A
on T.field2=A.field2