簡體   English   中英

在 Oracle 中按 TIMESTAMP`S 日期分組

[英]Group by TIMESTAMP`S Date in Oracle

到目前為止,我正在嘗試在 oracle 中按時間戳的日期進行分組,我使用的是to_char 但我需要另一種方式。 我試過如下:

    SELECT d.summa,
           d.FILIAL_CODE,
           to_char(d.DATE_ACTION, 'YYYY-MM-DD')
    FROM table1 d
    WHERE d.action_id = 2
      AND d.date_action Between to_date('01.01.2020', 'dd.mm.yyyy') AND to_date('01.03.2020', 'dd.mm.yyyy')
    GROUP BY to_char(d.DATE_ACTION, 'YYYY-MM-DD')

表格1

-----------------------------------------------------
summa      |  filial_code    | date_action
--------------------------------------------------
100000.00  |  2100           | 2016-09-13 11:04:32
320000.12  |  3200           | 2016-09-12 21:04:58
400000.00  |  2100           | 2016-09-13 15:12:45
510000.12  |  3200           | 2016-09-15 09:30:58
------------------------------------------------------

我需要像下面

-------------------------------------------
summa      |  filial_code    | date_action
------------------------------------------
500000.00  |  2100           | 2016-09-13 
320000.12  |  3200           | 2016-09-12 
510000.12  |  3200           | 2016-09-15 
------------------------------------------

但我需要除了to_char函數。 我試過trunc但我做不到

使用TRUNC實際上應該將其轉換為日期並刪除時間部分,但您還需要處理其他列。 按它們分組或使用聚合函數:

SELECT SUM( d.summa ) AS summa,
       d.FILIAL_CODE,
       TRUNC(d.DATE_ACTION) AS date_action
FROM table1 d
WHERE d.action_id = 2
  AND d.date_action Between to_date('01.01.2020', 'dd.mm.yyyy')
                        AND to_date('01.03.2020', 'dd.mm.yyyy')
GROUP BY TRUNC(d.DATE_ACTION), d.FILIAL_CODE

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM