帮我解决这个问题。 我想在PostgreSQL上按字母顺序订购月份。
这是我的代码:
SELECT to_char(closed_date,'Month') AS "month" ,
count(card_number) AS "total"
FROM c_card_status_history
where extract(year from closed_date) = 2018
GROUP BY "month" order by "month"
请帮助我。 谢谢
答案 0 :(得分:1)
您需要将closed_date
保留为日期(或时间戳记),以便可以对其进行订购。为此,您可以对date_trunc('month', closed_date)
进行分组,并按表达式将其用作顺序:
SELECT to_char(date_trunc('month', closed_date), 'Month') AS "month",
count(card_number) AS "total"
FROM c_card_status_history
where extract(year from closed_date) = 2018
GROUP BY date_trunc('month', closed_date)
ORDER BY date_trunc('month', closed_date)
通过date_trunc('month', closed_date)
分组与通过to_char()
表达式进行分组的效果相同,因为您还将结果限制为从2018年起仅几个月。