日付ごとに 5 つのクエリを結合した下に、次のような大きなクエリがあります。
--Combined Daily Actions Per Revenue Source--
SELECT Two.the_date,
sp_dau,
cs_dau,
tapjoy_ios_dau,
tapjoy_android_dau,
appcircle_ios_dau,
appcircle_android_dau,
freecause_dau,
portal_dau
FROM (SELECT Trunc(Cs.create_dtime) AS The_Date,
Count(DISTINCT CASE
WHEN Cs.cs_listing_id LIKE '99999999%' THEN
( Cs.player_id )
END) AS Sp_Dau,
Count(DISTINCT CASE
WHEN Cs.cs_listing_id NOT LIKE '99999999%' THEN
( Cs.player_id )
END) AS Cs_Dau
FROM player_chkin_cs Cs
WHERE Trunc(Cs.create_dtime) >= To_date('2012-Jan-01', 'yyyy-mon-dd')
GROUP BY Trunc(Cs.create_dtime)) One
INNER JOIN (SELECT Trunc(Tap.create_dtime) AS The_Date,
Count(DISTINCT CASE
WHEN ( Play.uuid LIKE 'i~%' )
OR ( Play.uuid LIKE 'ti~%' )
THEN
Tap.player_id
END) AS Tapjoy_Ios_Dau,
Count(DISTINCT CASE
WHEN ( Play.uuid LIKE 'a~%' )
OR ( Play.uuid LIKE 'ta~%' )
THEN
Tap.player_id
END) AS Tapjoy_Android_DAU
FROM player_tapjoy Tap
INNER JOIN player Play
ON Tap.player_id = Play.player_id
WHERE Trunc(Tap.create_dtime) >=
To_date('2012-Jan-01', 'yyyy-mon-dd')
GROUP BY Trunc(Tap.create_dtime)) Two
ON One.the_date = Two.the_date
INNER JOIN (SELECT Trunc(Aux.create_dtime) AS The_Date,
Count(DISTINCT CASE
WHEN ( Play.uuid LIKE 'i~%' )
OR ( Play.uuid LIKE 'ti~%' )
THEN
Aux.player_id
END) AS Appcircle_Ios_Dau,
Count(DISTINCT CASE
WHEN ( Play.uuid LIKE 'a~%' )
OR ( Play.uuid LIKE 'ta~%' )
THEN
Aux.player_id
END) AS AppCircle_Android_DAU
FROM player_aux_pt Aux
INNER JOIN player Play
ON Aux.player_id = Play.player_id
WHERE Aux.site = 'AppCircle'
AND Trunc(Aux.create_dtime) >=
To_date('2012-Jan-01', 'yyyy-mon-dd')
GROUP BY Trunc(Aux.create_dtime))Three
ON Two.the_date = Three.the_date
INNER JOIN (SELECT Trunc(Aux.create_dtime) AS The_Date,
Count(DISTINCT Aux.player_id) AS FreeCause_DAU
FROM player_aux_pt Aux
WHERE Aux.site = 'ext : freecause'
AND Trunc(Aux.create_dtime) >=
To_date('2012-Jan-01', 'yyyy-mon-dd')
GROUP BY Trunc(Aux.create_dtime))Four
ON Three.the_date = Four.the_date
INNER JOIN (SELECT Trunc(Aux.create_dtime) AS The_Date,
Count(DISTINCT Aux.player_id) AS Portal_DAU
FROM player_aux_pt Aux
WHERE ( Aux.site = 'Portal : Promotion'
OR Aux.site = 'Portal : RadiumOne'
OR Aux.site = 'Portal : Paymentwall'
OR Aux.site = 'Portal : TrialPay' )
AND Trunc(Aux.create_dtime) >=
To_date('2012-Jan-01', 'yyyy-mon-dd')
GROUP BY Trunc(Aux.create_dtime)) Five
ON Four.the_date = Five.the_date
サブクエリのほとんどは、2012-Jan-01
現在までのデータしかないものを除いて、現在までの範囲09-Jul-12
です。
したがって、このクエリを実行すると、結果の最初の日付は09-Jul-12
and notになり01-Jan-12
ます。
Jan 01
1 つを除くすべてのクエリに関連データがあるから結果を取得するにはどうすればよいですか?