帮我解决这个问题。我想在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"
请帮我。谢谢
您需要将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年之后的几个月。