以下查询:
Select
trunc(create_dtime) as Day,count(create_dtime) as DLs
From Player_Tapjoy
Where
Trunc(Create_Dtime) >= To_Date('2012-sep-01','yyyy-mon-dd')
And Trunc(Create_Dtime) < To_Date('2012-sep-03','yyyy-mon-dd')
Group by trunc(create_dtime)
Union All
Select trunc(create_dtime) as Day,
Count(Create_Dtime) As DLs
From Player_aux_pt
Where
Site = 'AppCircle' And
Trunc(Create_Dtime) >= To_Date('2012-sep-01','yyyy-mon-dd')
And Trunc(Create_Dtime) < To_Date('2012-sep-03','yyyy-mon-dd')
Group By Trunc(Create_Dtime)
给我以下结果:
Day DLs
02-Sep-12 6920
01-Sep-12 6630
02-Sep-12 3009
01-Sep-12 3637
如何将这些组合起来,以便每天只有一行,并且订购正确?
答案 0 :(得分:2)
WITH
PTJ AS
(
SELECT
TRUNC(CREATE_DTIME) AS DAY,
COUNT(CREATE_DTIME) AS DLS
FROM PLAYER_TAPJOY
WHERE TRUNC(CREATE_DTIME) >= TO_DATE('2012-sep-01', 'yyyy-mon-dd')
AND TRUNC(CREATE_DTIME) < TO_DATE('2012-sep-03', 'yyyy-mon-dd')
GROUP BY TRUNC(CREATE_DTIME)
),
PAP AS
(
SELECT
TRUNC(CREATE_DTIME) AS DAY,
COUNT(CREATE_DTIME) AS DLS
FROM PLAYER_AUX_PT
WHERE SITE = 'AppCircle'
AND TRUNC(CREATE_DTIME) >= TO_DATE('2012-sep-01', 'yyyy-mon-dd')
AND TRUNC(CREATE_DTIME) < TO_DATE('2012-sep-03', 'yyyy-mon-dd')
GROUP BY TRUNC(CREATE_DTIME)
)
SELECT
COALESCE(PTJ.DAY, PAP.DAY) AS DAY,
PTJ.DLS AS PTJ_DLS,
PAP.DLS AS PAP_DLS,
COALESCE(PTJ.DLS, 0) + COALESCE(PAP.DLS, 0) TOTAL_DLS
FROM PTJ
FULL OUTER JOIN PAP
ON PTJ.DAY = PAP.DAY
ORDER BY COALESCE(PTJ.DAY, PAP.DAY)
答案 1 :(得分:0)
select day,sum(DLs) as Tot_DLs
From
(
Select
trunc(create_dtime) as Day,count(create_dtime) as DLs
From Player_Tapjoy
Where
Trunc(Create_Dtime) >= To_Date('2012-sep-01','yyyy-mon-dd')
And Trunc(Create_Dtime) < To_Date('2012-sep-03','yyyy-mon-dd')
Group by trunc(create_dtime)
Union All
Select trunc(create_dtime) as Day,
Count(Create_Dtime) As DLs
From Player_aux_pt
Where
Site = 'AppCircle' And
Trunc(Create_Dtime) >= To_Date('2012-sep-01','yyyy-mon-dd')
And Trunc(Create_Dtime) < To_Date('2012-sep-03','yyyy-mon-dd')
Group By Trunc(Create_Dtime)
)
Group By Day
Order By Day Asc