目前我将新闻分组为月+年,但我们没有足够的新闻文章。因此,我想按季节对它们进行分组:夏季、 Spring 、秋季或冬季 + 年份
所以代替:
- 2013 年 1 月
- 2013 年 3 月
- 2013 年 4 月
它会是:
- 2013 年夏季
- 2013 年 Spring
每月归档
SELECT MONTHNAME(news_date) AS MONTH,
YEAR(news_date) AS YEAR,
COUNT(news_id) AS COUNT
FROM news
WHERE news_type = 'NEWS'
AND news_status = 'ENABLED'
GROUP BY CONCAT(MONTH(news_date), ' ', YEAR(news_date))
ORDER BY news_date DESC
最佳答案
SELECT CASE WHEN MONTH(news_date) IN (12, 1, 2) THEN 'Winter'
WHEN MONTH(news_date) IN (3, 4, 5) THEN 'Spring'
WHEN MONTH(news_date) IN (6, 7, 8) THEN 'Summer'
ELSE 'Fall' END AS Season,
YEAR(news_date) AS YEAR,
COUNT(news_id) AS COUNT
FROM news
WHERE news_type = 'NEWS'
AND news_status = 'ENABLED'
GROUP BY YEAR(news_date), Season
ORDER BY news_date DESC
关于Mysql 按日期将行分组为 4 个季节 + 年,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19680176/