による凝集による私は現在、このようなSQLクエリを書かれている:SQL複数のグループ最初のグループ
SELECT a, b, count(id)/????
FROM X
group by a, b
に注意してください?????上記コードの group by
には2つのグループがあります。つまり、列a
とb
です。
は私は何をしようとすると、最初のグループ(a
)内のアイテムの(2)カウントする第二群(b
)内のアイテムの(1)カウントを分割することです。
count(id)
は(1)を達成します。しかし、私は何のために書くべきか分からない(2)。
P .:私は知っていますが、 "????"別の複雑な選択クエリを使用して、私はより簡単な方法がある場合は最初のグループの項目aggregate
を学びたいと思います。
更新: サンプルデータ:
id a b
______________________
1 'A' 'G'
2 'A' 'H'
3 'A' 'H'
4 'B' 'G'
5 'B' 'G'
6 'B' 'K'
7 'B' 'K'
結果は:
a b [unnamed]
________________________________
'A' 'G' 0.33333
'A' 'H' 0.66667
'B' 'G' 0.5
'B' 'K' 0.5
第3列は、列の値に列Bの相対のような値を持つ列の割合です。
ありがとうございます。
編集をあなたの質問を使用して、サンプルデータと望ましい結果を提供している場合は多分これは動作します。最初のグループは何ですか?第二のグループとは何ですか? –
まず、私が学んだ 'count(*)'はあなたが望むものではなく、すべてのカラムを選択し、大きなテーブルでは、これがパフォーマンスヒットになる可能性があります。 'eventid'が存在し、あなたの主キーであると仮定して' count(eventid) 'に切り替えることができます。 – Roland
はい@Roland。 count(eventid)が正しい。しかし、私はcount(*)をテストしても同じ動作しています。私はそれをより明確にするために質問を編集しています。 –