2017-09-25 55 views
0

我寫使用PostgreSQL來算的東西查詢,但我要排序的日期(DDMMYYYY)正確。排序DDMMYYYY每月使用PostgreSQL

有了這個以下代碼,

WITH dis_id AS (SELECT 
DISTINCT ON (source_user_id) source_user_id, 
    created_at 
    FROM public.info_scammers) 

SELECT d.date, count(dis_id.source_user_id) 
FROM (SELECT to_char(date_trunc('day',(current_date - offs)), 'DD-MM-YYYY') AS date 
    FROM generate_series(0,365,1) AS offs 
) d LEFT OUTER JOIN 
    dis_id 
    ON (d.date = to_char(date_trunc('day',dis_id.created_at),'YYYY-MM-DD')) 



GROUP BY d.date 

結果是

Date  | Count 
01-01-2017 | 0 

01-02-2017 | 0 

01-03-2017 | 0 

我要的是

Date  | Count 
01-01-2017 | 0 

02-01-2017 | 0 

03-01-2017 | 0 

我已經看過了存在的問題。但他們大多不使用PostgreSQL

謝謝

回答

0

離開d.datedate型內SELECT(不要將其與to_char轉換爲text),然後在添加ORDER BY d.date並做轉換到textSELECT

喜歡的東西:

WITH dis_id AS (...) 
SELECT to_char(d.date, 'DD-MM-YYYY'), count(...) 
FROM (SELECT date_trunc(...) AS date 
     FROM ... 
    ) d 
    LEFT OUTER JOIN ... 
GROUP BY to_char(d.date, 'DD-MM-YYYY') 
ORDER BY d.date; 
+0

謝謝大家Laurenz ALBE。但是,當我試圖運行查詢時,錯誤消息如下所示。 'date_trunc函數(未知,日期不詳)不存在 提示:無功能的指定名稱和參數類型相匹配。 您可能需要添加顯式類型轉換。 位置:195' 爲什麼是函數'date_trunc'無法識別? – 7447

+0

你要使用'date_trunc'有三個參數,但目前還沒有這樣的功能。 –