我需要按日期对一些数据进行分组,但我有一个非常特殊的情况,即最终字段的名称应该与原始字段的名称相同,而且我不能在 GROUP BY< 中使用表达式
我用一些示例数据创建了这个 sqlfiddle:
http://sqlfiddle.com/#!2/8771a/1
我需要这个结果:
DATE PAGEVIEWS
2013-12 69
2013-11 70
注意 1:我不能更改分组依据,如果我这样做我会得到结果,但我需要按 date
分组并且日期应该是格式化日期,而不是表中的实际日期:
SELECT DATE_FORMAT(`date`, "%Y-%m") AS `date`, SUM(pageviews) AS pageviews
FROM `domains_data`
GROUP BY DATE_FORMAT(`date`, "%Y-%m")
ORDER BY `date` DESC
注意 2:我不能重命名该字段,它的末尾应该有名称“date”,这对我来说是不可能的:
SELECT DATE_FORMAT(`date`, "%Y-%m") AS `date2`, SUM(pageviews) AS pageviews
FROM `domains_data`
GROUP BY `date2`
ORDER BY `date` DESC
有什么方法可以用 MySQL 做到这一点?
最佳答案
是否允许使用嵌套查询?
SELECT `date`, SUM(pageviews) AS pageviews FROM
(SELECT DATE_FORMAT(`date`, "%Y-%m") AS `date`, SUM(pageviews) AS pageviews
FROM `domains_data`
GROUP BY `date`) AS Ref
GROUP BY `date`
ORDER BY `date` DESC
关于mysql - 在 MySQL 查询中使用分组值而不是表值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20499812/