我與此查詢掙扎,這裏是表設置:查詢與內選擇和集團通過
date | time | count
----------------------------
12/12/2015 | 0:00 | 8
12/12/2015 | 1:00 | 19
12/12/2015 | 2:00 | 36
12/13/2015 | 0:00 | 12
12/13/2015 | 1:00 | 22
12/13/2015 | 2:00 | 30
12/14/2015 | 0:00 | 14
12/14/2015 | 1:00 | 26
12/14/2015 | 2:00 | 38
我想我的查詢返回的內容是這樣的:
date | time | count | DAY | AVG/HR | AVG/DAY
---------------------------------------------------------
12/12/2015 | 0:00 | 8 | MONDAY | 11.33 | 63
12/12/2015 | 1:00 | 19 | MONDAY | 22.33 | 63
12/12/2015 | 2:00 | 36 | MONDAY | 34.67 | 63
12/13/2015 | 0:00 | 12 | TUESDAY | 11.33 | 64
12/13/2015 | 1:00 | 22 | TUESDAY | 22.33 | 64
12/13/2015 | 2:00 | 30 | TUESDAY | 34.67 | 64
12/14/2015 | 0:00 | 14 | WEDNESDAY | 11.33 | 78
12/14/2015 | 1:00 | 26 | WEDNESDAY | 22.33 | 78
12/14/2015 | 2:00 | 38 | WEDNESDAY | 34.67 | 78
所以基本上這是返回所有行(表中將有數月的數據,每天有24個記錄/小時)。並添加一週中的一天,以及每小時的平均計數以及一週中每天的平均計數。最後兩個是我正在努力的。這是我到目前爲止:
SELECT DATE, TIME, COUNT,
TO_CHAR(DATE, 'DAY'),
(SELECT AVG(t2.COUNT)
FROM tableXX t2
WHERE t2.time = t1.time
GROUP BY t2.time) AS AvgPerHr
(SELECT AVG(t2.COUNT)
FROM tableXX t2
WHERE TO_CHAR(t2.DATE, 'DAY') = TO_CHAR(t1.DATE, 'DAY')
GROUP BY TO_CHAR(t2.DATE, 'DAY')) AS AvgPerDay
FROM tableXX t1
ORDER BY DATE, TO_DATE(TIME, 'hh24:mi') ASC;
任何建議,將不勝感激,上述查詢返回數據,但它絕對不準確。
我沒有得到AVG/HR&AVG/DAY的邏輯。你能否提供這些邏輯的細節? –
@ThitLwinOo因此,表中每個日期都有24條記錄(每天每個小時)。我希望能得到每小時的平均值。所以我想看看凌晨1點(01:00)的整體平均值是多少。至於平均每日,這只是一週中的每天平均值。那麼我們週一的平均數是多少?我明白這有點令人困惑,我試圖在我上面的結果表模擬中解釋它,但這很困難。 – Dan