現在、私はグループ内のグループの数を見つける必要がある問題があります。しかし、私は包括的なグループのためにオンラインで作成し、文字列内の小さなグループを連結したいと思います。別のグループ内のSQLグループby
----------------------------------------
Timestamp ID Member
----------------------------------------
1 1 A
1 1 B
1 2 A
1 2 B
1 2 C
2 1 A
2 2 A
2 2 A
2 2 C
----------------------------------------
は今、私は結果がすべき、すなわち、各IDの(個別の)メンバーがテーブルにあるどのように多く、各タイムスタンプのために探したい:
次の表は、私が現在直面しています状況を示しています次のようになります。
Timestamp MemberIDCount
----------------------------------------
1 1:2,2:3
2 1:1,2:2
----------------------------------------
つまり、文字列の形式は次のとおりです。
[ID]:[count(distinct(member)],...
私はあなたが2つの連続したグループバイス(すなわち、最初にタイムスタンプとIDをカウントするメンバーとストリング連結のオンタイムスタンプ)でこれを解決できることを知っています。しかし、私はそれを大規模なデータセットに適用する必要があり、2つのグループバイズを実行したくないので、よりスマートなソリューションがあることを願っています。私はCloudera Impalaと協力していますが、他のSQL言語のソリューションも高く評価されています。
ありがとうございました。
リファレンス:https://www.cloudera.com/documentation/enterprise/5-5-x/topics/impala_group_concat.html –