oracle查詢一段時間內每一天的統計資料sql怎麼寫?
這是sql的基本功。各個資料庫SQL寫法一樣,只是那幾個函式不一樣而已。
比如表是datatable,,裡面只存了一個月的資料,時間欄位biztime,數量欄位qty。要求1-10號每天8-15點時段qty之和。語句:
select date_part(‘day’,biztime),sum(qty) from datatable where date_part(‘day’,biztime)>=1 and date_part(‘day’,biztime)<=10 and datepart(hour‘,biztime)>=8 and date_part(hour’,biztime)<15 group by date_part(‘day’,biztime) order by date_part(‘day’,biztime)
結果:
1 XX
2 XX
3 XX
……
當然,以上是最簡單的情況。稍複雜的情況,比如6號那天沒資料,但要求列表中要有6號(數量為0),這時就要用到連線,其實也是非常簡單啦。
假設你的表還有一個欄位: 名稱。 資料大概是:
名稱 日期 金額
甲 2017。10 45
乙 2017。11 53
select * from table where 名稱 in (
select 名稱 from table where 日期 between ‘2017。11’ and ‘2018。3’ group by 名稱 having min(金額)>50
) and 日期 between ‘2017。11’ and ‘2018。3’
上面的可以查出2017。11-2018。1這段時間內符合條件的記錄。
查出2個時間段可以將上面的SQL複製一份union一下。 不union也有辦法實現。