3

重複する値を持つテーブルがありfield2field1クエリで保持したい値があります。

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。グループ化して、出力にfield21 行を表示field2します。行に (Bob、Jim、Tim) の 3 つすべてを含めることはできません。そのため、論理的に 1 つの値 (または数値列の平均などの複数の集計) を選択するために集計を配置する必要があります。 )。

于 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 に答える