PostgreSQL的新手在這裏。Postgres:鏈接序列日期虛擬表到實際表
我有一些基本上列出了從2/4/2013
到10/7/2013
日期序列的SQL。 例如:
select date(generate_series(DATE '20130402', DATE '20131007', interval '1' day))
輸出:
"2013-04-02"
"2013-04-03"
"2013-04-04"
"2013-04-05"
"2013-04-06"
然後,我必須從myorder
表另一個SQL:
select date(date_created) as date_created1, count(id) from myorder group by date_created1 order by date_created1 desc
輸出:
"2013-08-12;2"
"2013-08-08";1"
"2013-08-02";1"
"2013-08-01";1"
基本上,這顯示每天的總訂單。
我的問題是如何將第一個SQL鏈接到第二個SQL,以便它將按順序輸出日期和計數(按日期排序)。另外,如果在「myorder」表中找不到訂單,它將顯示「0」。
例如:
2013-08-11
沒有任何訂單記錄,因此計數欄顯示"0"
。
更多少這樣的:
"2013-08-12;2"
"2013-08-11;0"
"2013-08-10;0"
"2013-08-09;0"
"2013-08-08;1"
"2013-08-02;1"
"2013-08-01;1"
感謝您的幫助提前。
試過了,得到這個錯誤:錯誤:不能接受所謂的上下文中設置值函數一套 – user2856772
通過從「generate_series」中取出「date」來解決問題。完整的SQL爲: SELECT date(dt.d)AS date_created1,count(m.id) FROM generate_series(DATE'20130402',DATE'20131007',interval'1'day)AS dt(d) LEFT JOIN myorder m開日期(m.date_created)=日期(dt.d) GROUP BY date_created1 ORDER BY date_created1 DESC 謝謝@MatheusOl的想法。 – user2856772
@ user2856772,你是對的......我糾正了它的正確性,並使用了一種不同於你的方法(我認爲它更清晰)......檢查一下。 – MatheusOl