0

GROUP BYを使用する場合、文字列に対してどの集計関数が機能しますか?

通常はGROUPBYuser_idを使用しますが、文字列に対してどの集計関数が機能するかわかりません。

目標は、各user_idの通貨を1行として取得することです。

user_id   currency

12341235  "USD"
12341235  "USD"
12341235  "USD"
12341235  "USD"
05945949  "EURO"
05945949  "EURO"
05945949  "EURO"
99910277  "USD"
99910277  "USD"
99910277  "USD"

完成したデータ:

user_id   currency

12341235  "USD"
05945949  "EURO"
99910277  "USD"
4

4 に答える 4

2

group by実際には、それを行う必要はありませんdistinct

select distinct user_id,currency from your_table;

各行に同じcurrencyものがあるので、ここでは何も必要ありません。useraggregate function

于 2012-07-20T06:49:52.827 に答える
2

デモ http://sqlfiddle.com/#!3/60ea7/5

DISTINCTとGROUPBYは通常、同じクエリプランを生成するため、パフォーマンスは両方のクエリ構造で同じである必要があります。GROUP BYは、各グループに集計演算子を適用するために使用する必要があります。重複を削除するだけでよい場合は、DISTINCTを使用してください。サブクエリを使用している場合、そのクエリの実行プランはさまざまであるため、その場合は、どちらが速いかを判断する前に実行プランを確認する必要があります。

于 2012-07-20T06:58:56.263 に答える
1

group byを使用する特別な理由はありますか?

同じ結果を得るには、DISTINCTを使用できる必要があります。

Distinct user_id、currencyを選択します

于 2012-07-20T06:48:02.500 に答える
1

グループbnyすべての列はそれを区別します

select user_id,currency from your_table
Group by user_id,currency 
于 2012-07-20T06:53:31.327 に答える