【发布时间】:2014-01-29 01:00:28
【问题描述】:
这是我当前的查询:
SELECT SUM(round("records"."value")) AS sum_value,
to_char(service_date_time, 'Mon YYYY') AS to_char_service_date_time_mon_yyyy
FROM "records"
INNER JOIN "categories" ON "categories"."id" = "records"."category_id"
WHERE (value < 10000)
AND (categories.kind = 'Attendance')
AND (records.service_date_time >= '2013-01-01 00:00:00.000000'
AND records.service_date_time <= '2014-01-29 00:37:00.400862')
GROUP BY to_char_service_date_time_mon_yyyy
这会返回所有正确的数据:
3036710 Aug 2013
2792991 Jul 2013
3344243 Jun 2013
3121535 Apr 2013
3752803 Sep 2013
2931149 May 2013
3046820 Nov 2013
4437698 Mar 2013
2709170 Jan 2014
3709154 Jan 2013
3361630 Dec 2013
3008767 Oct 2013
3474820 Feb 2013
但是,我似乎无法按新的日期格式列排序,因为它是一个字符串。如果我这样做,它会先排序 2013 年 4 月,然后是 2013 年 8 月。我需要按月排序。我尝试了一些不同的方法,例如使用 to_date 而不是 to_char,还尝试在订购前将列转换为日期。没有骰子。
有什么想法吗?
谢谢!
【问题讨论】:
标签: sql postgresql