私はサブスクリプションテーブルを次のようにしています。 ユニークなIDは約1百万件あります。 この表には、ユーザーがサブスクリプションサービスを開始したときのサブスクリプションのステータスが 'Sub'で示され、サブスクリプションが 'Usub'と示されている場合のサブスクリプションステータスがリストされています。列自体と日付で決まる列の欠損値を入力してください
ID Year Month Status
A 2014 1
A 2014 2
A 2014 3
A 2014 4 Sub
A 2014 5
A 2014 6
A 2014 7
A 2014 8 Usub
A 2014 9
A 2014 10
A 2014 11
A 2014 12
B 2014 1
B 2014 2
B 2014 3
B 2014 4
B 2014 5 Usub
B 2014 6
B 2014 7
B 2014 8
B 2014 9 Sub
B 2014 10
B 2014 11
B 2014 12
. . . .
. . . .
. . . .
各ステータスの更新間隔を埋めるために探しています。 所望の出力テーブルには、次のようになり:
ID Year Month Status
A 2014 1 Usub
A 2014 2 Usub
A 2014 3 Usub
A 2014 4 Sub
A 2014 5 Sub
A 2014 6 Sub
A 2014 7 Sub
A 2014 8 Usub
A 2014 9 Usub
A 2014 10 Usub
A 2014 11 Usub
A 2014 12 Usub
B 2014 1 Sub
B 2014 2 Sub
B 2014 3 Sub
B 2014 4 Sub
B 2014 5 Usub
B 2014 6 Usub
B 2014 7 Usub
B 2014 8 Usub
B 2014 9 Sub
B 2014 10 Sub
B 2014 11 Sub
B 2014 12 Sub
. . . .
. . . .
. . . .
最初の表は、両方のユーザーが一つの状態変化よりも多くを持って示しているが、任意の所与のIDは、必ずしも複数の状態変化を有していません。ただし、各IDには少なくとも1つのステータスがあります。すなわち、 2014/8で購読し、決して購読していないユーザーは、2014/8でstatus = Subとなります。
** MySQL **または** Hive **?!で実行しますか?通常のSQLはそうしないので、いくつかの手続きを必要とします。 –
@サムソン、私はハイブでそれをやりたいですが、mysqlのアプローチも受け入れます。 – ohmyan