我写过PostgreSQL查询,它检索月,年和相应的计数。我的查询如下:
SELECT
(CASE
WHEN EXTRACT(MONTH FROM app_pgm_req_dt) = 01 THEN 'January'
WHEN EXTRACT(MONTH FROM app_pgm_req_dt) = 02 THEN 'February'
WHEN EXTRACT(MONTH FROM app_pgm_req_dt) = 03 THEN 'March'
WHEN EXTRACT(MONTH FROM app_pgm_req_dt) = 04 THEN 'April'
WHEN EXTRACT(MONTH FROM app_pgm_req_dt) = 05 THEN 'May'
WHEN EXTRACT(MONTH FROM app_pgm_req_dt) = 06 THEN 'June'
WHEN EXTRACT(MONTH FROM app_pgm_req_dt) = 07 THEN 'July'
WHEN EXTRACT(MONTH FROM app_pgm_req_dt) = 08 THEN 'Augst'
WHEN EXTRACT(MONTH FROM app_pgm_req_dt) = 09 THEN 'September'
WHEN EXTRACT(MONTH FROM app_pgm_req_dt) = 10 THEN 'October'
WHEN EXTRACT(MONTH FROM app_pgm_req_dt) = 11 THEN 'November'
WHEN EXTRACT(MONTH FROM app_pgm_req_dt) = 12 THEN 'December'
END) as MONTH ,EXTRACT(YEAR FROM app_pgm_req_dt) as YEAR,count(*)
FROM app_pgm_choice GROUP BY MONTH,YEAR
order by YEAR
由于结果按月和年排序,其订购月按字母顺序排列,我希望按实际月份顺序排序。
输出:
"September";1968;4
"September";1970;1
"Augst";1971;3
"February";1975;1
"February";1977;1
"May";1977;1
"September";1978;1
"February";1978;3
"April";1978;1
"September";1979;1
.....
.....
年份...... 1978年......结果应该像feb,4月和9月一样订购 我怎么能这样做?
答案 0 :(得分:2)
所以只需按月('01'
- '12'
)订购:
SELECT CASE WHEN EXTRACT(MONTH FROM app_pgm_req_dt) = 01 THEN 'January'
WHEN EXTRACT(MONTH FROM app_pgm_req_dt) = 02 THEN 'February'
WHEN EXTRACT(MONTH FROM app_pgm_req_dt) = 03 THEN 'March'
WHEN EXTRACT(MONTH FROM app_pgm_req_dt) = 04 THEN 'April'
WHEN EXTRACT(MONTH FROM app_pgm_req_dt) = 05 THEN 'May'
WHEN EXTRACT(MONTH FROM app_pgm_req_dt) = 06 THEN 'June'
WHEN EXTRACT(MONTH FROM app_pgm_req_dt) = 07 THEN 'July'
WHEN EXTRACT(MONTH FROM app_pgm_req_dt) = 08 THEN 'Augst'
WHEN EXTRACT(MONTH FROM app_pgm_req_dt) = 09 THEN 'September'
WHEN EXTRACT(MONTH FROM app_pgm_req_dt) = 10 THEN 'October'
WHEN EXTRACT(MONTH FROM app_pgm_req_dt) = 11 THEN 'November'
WHEN EXTRACT(MONTH FROM app_pgm_req_dt) = 12 THEN 'December'
END AS MONTH,
EXTRACT(YEAR FROM app_pgm_req_dt) AS YEAR,
COUNT(*)
FROM app_pgm_choice
GROUP BY YEAR, MONTH, TO_CHAR (app_pgm_req_dt, 'MM')
ORDER BY YEAR, TO_CHAR (app_pgm_req_dt, 'MM');