我正在使用火鸟。我需要以下结果,但我没有得到我需要的结果。我尝试了以下查询。
SELECT
CASE EXTRACT(MONTH FROM pd.Date)
WHEN 1 THEN 'January'
WHEN 2 THEN 'February'
WHEN 3 THEN 'March'
WHEN 4 THEN 'April'
WHEN 5 THEN 'May'
WHEN 6 THEN 'June'
WHEN 7 THEN 'July'
WHEN 8 THEN 'August'
WHEN 9 THEN 'September'
WHEN 10 THEN 'October'
WHEN 11 THEN 'November'
WHEN 12 THEN 'December'
END AS "MONTH",
Count(distinct pd.numbers) AS "Count"
FROM Power_D pd
WHERE EXTRACT(YEAR FROM pd.Date) = '2016'
AND pd.Name = 'Test'
GROUP BY EXTRACT(MONTH FROM pd.Date)
对于下面这个查询结果。
February 330
March 212
April 178
May 222
June 487
July 695
August 433
September 757
October 1307
November 321
December 143
但我需要像下面这样。
January 0
February 330
March 212
April 178
May 222
June 487
July 695
August 433
September 757
October 1307
November 321
December 143
这是基于 @JNevill 评论的 MySQL/MariaDb 的可能解决方案
SELECT m.month_name, count(distinct pd.numbers) AS "Count"
FROM
(
SELECT 1 AS month, 'January' as month_name
UNION ALL SELECT 2, 'February'
UNION ALL SELECT 3, 'March'
UNION ALL SELECT 4, 'April'
UNION ALL SELECT 5, 'May'
UNION ALL SELECT 6, 'June'
UNION ALL SELECT 7, 'July'
UNION ALL SELECT 8, 'August'
UNION ALL SELECT 9, 'September'
UNION ALL SELECT 10, 'October'
UNION ALL SELECT 11, 'November'
UNION ALL SELECT 12, 'December'
) m
LEFT JOIN
(
SELECT *
FROM Power_D
WHERE EXTRACT(YEAR FROM Date) = '2016'
AND Name = 'Test'
) pd ON EXTRACT(MONTH FROM pd.Date) = m.month
GROUP BY m.month_name
ORDER BY m.month
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)