我有以下疑问:
Select TRUNC(create_dtime) as Day, Count(Create_Dtime) As SinS_Tot
From player_chkin_hist
Where Product_Id Is Not Null
And Trunc(Create_Dtime) >= To_Date('2012-sep-01','yyyy-mon-dd')
And Trunc(Create_Dtime) < To_Date('2012-sep-19','yyyy-mon-dd')
Group By Trunc(Create_Dtime)
Order By 1 Asc
和
Select TRUNC(Create_Dtime) As Day, Count(Create_Dtime) As Sins_Tot
From Player_Chkin
where Product_Id Is Not Null
And Trunc(Create_Dtime) >= To_Date('2012-sep-01','yyyy-mon-dd')
And Trunc(Create_Dtime) < To_Date('2012-sep-19','yyyy-mon-dd')
Group By Trunc(Create_Dtime)
Order By 1 Asc
查询1结果:
Day SinS_Tot
01-Sep-12 10000
02-Sep-12 9000
查询两个结果:
Day SinS_Tot
03-Sep-12 11500
04-Sep-12 9800
有没有一种简单的方法来组合这两个查询,以便我看到所有数据?我想过使用连接,但由于日期不重叠,所以没有什么可以设置内部连接相等。
答案 0 :(得分:1)
您要找的是UNION
(或UNION ALL
,具体取决于您是否要删除重复项:)
Select
trunc(create_dtime) as Day, Count(Create_Dtime) As SinS_Tot
From player_chkin_hist
Where
Product_Id Is Not Null And
Trunc(Create_Dtime) >= To_Date('2012-sep-01','yyyy-mon-dd')
And Trunc(Create_Dtime) < To_Date('2012-sep-19','yyyy-mon-dd')
Group By Trunc(Create_Dtime)
UNION
Select Trunc(Create_Dtime) As Day, Count(Create_Dtime) As Sins_Tot
From Player_Chkin
where
Product_Id Is Not Null And
Trunc(Create_Dtime) >= To_Date('2012-sep-01','yyyy-mon-dd')
And Trunc(Create_Dtime) < To_Date('2012-sep-19','yyyy-mon-dd')
Group By Trunc(Create_Dtime)
Order By 1 Asc
答案 1 :(得分:1)
你可以UNION ALL
两个结果
<<query 1>>
UNION ALL
<<query 2>>
您也可以使用UNION
,但这会更昂贵,因为它会强制Oracle查找并消除重复的行。如果你知道这两个查询永远不会返回同一行,或者你想要两个行,那么这是不必要的开销。
答案 2 :(得分:0)
他们之间可能有一个UNION
吗?将ORDER BY
保留在查询之外,将其放在第二个
Query1
UNION
Query2
答案 3 :(得分:0)
您只需要使用UNION组操作符。
[查询1] UNION ALL [QUERY2]