3

我有一个包含重复值的表,field2并且field1有我想在查询中保留的值。

field1  field2
 Bob       2
 Bob       2
 Bob       3
 Bob       3

此查询使用 group by 子句:

select field2
rom table
group by field2

众所周知,我不能包含field1在选择中。我需要包含field1在我的输出中。不知道如何做到这一点。

4

2 回答 2

2

你想保留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),这就是为什么您必须对其进行聚合以在逻辑上仅选择一个值(或多个值的聚合,例如数字列的平均值) )。

于 2012-10-19T00:22:44.017 回答
0

另一种选择是

select * 
from table T
join
   (select field2
    from table
    group by field2)A
on T.field2=A.field2
于 2012-10-19T03:11:59.847 回答