ご質問です。
データベースはOracleで、バージョンは11g R2です。
あるIDの人(ID
列) がイベントAとイベントB(event
列)を経験した場合、複数行に分かれて格納されているデータがございます。このイベントAとイベントBの2行が、同一日(event_date
列)である場合に、2行をまとめてしまってevent列を「A+B」という文字列に変換したいと考えております。
たとえば、以下のBeforeの1行目と2行目はどちらもID
=100, event_date
= 20140401で同一ID、同一日付となっています。
この2行のevent
をAfterの1行目のように「A+B」にして、Viewを作成したいと考えております。
event_dateに同一日付の時刻違いのデータはございません。
解決できるSQLクエリをご教示いただければ大変幸いです。
どうぞよろしくお願い申し上げます。
なお、Beforeのサンプルデータを作成したクエリは以下でございます。
sql
1--Before 2CREATE TABLE Tbl 3 (ID int, event varchar2(1), event_date int) 4; 5 6INSERT ALL 7 INTO Tbl (ID, event, event_date) 8 VALUES (100, 'A', 20140401) 9 INTO Tbl (ID, event, event_date) 10 VALUES (100, 'B', 20140401) 11 INTO Tbl (ID, event, event_date) 12 VALUES (100, 'C', 20140408) 13 INTO Tbl (ID, event, event_date) 14 VALUES (200, 'A', 20140901) 15 INTO Tbl (ID, event, event_date) 16 VALUES (200, 'C', 20150401) 17 INTO Tbl (ID, event, event_date) 18 VALUES (300, 'A', 20160401) 19 INTO Tbl (ID, event, event_date) 20 VALUES (300, 'B', 20160401) 21 INTO Tbl (ID, event, event_date) 22 VALUES (300, 'D', 20160401) 23 INTO Tbl (ID, event, event_date) 24 VALUES (300, 'C', 20170501) 25SELECT * FROM dual 26;
回答2件
あなたの回答
tips
プレビュー