postgresql - 如何在没有 aphabetically 的情况下订购月份?
问题描述
帮我解决这个问题。我想在 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)
grouping bydate_trunc('month', closed_date)
将实现与按to_char()
表达式分组相同的结果,因为您还将结果限制为仅从 2018 年开始的几个月。
推荐阅读
- android - Android 应用程序占用的空间大于 APK 大小
- javascript - 无法解析模块 xmlhttprequest 中的“child_process”
- python - 从其他列派生 DataFrame 列而不编写任何循环
- python-3.x - 如何在 geany 中为不同的文件使用 python2 和 python3 而不必每次都更改它?
- c# - 在c#中区分相同类型的对象以进行检索、比较等的方法是什么
- android - 尝试构建到 android 设备时出错“找不到 com.android.support”
- php - 如何根据mysql查询结果php而不是css隐藏下拉菜单中的元素
- reactjs - 下一个路由器:如何访问多个查询参数?
- twig - 我将如何添加 Twig 功能
- haskell - Haskell 如何评估这个签名?