如何无顺序订购一个月?

时间:2019-03-29 06:56:08

标签: postgresql

帮我解决这个问题。 我想在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"

请帮助我。 谢谢

1 个答案:

答案 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年起仅几个月。