请教一个 Group By 的问题

SQL语句如下

select DATE_FORMAT(date,"%Y-%m") AS `record_date`, SUM(activated) as activated from `users_log` where `date` between '2021-01-02' and '2021-07-26' group by `record_date`

请教一个 Group By 的问题

当我把

select DATE_FORMAT(date,"%Y-%m") AS `record_date`

改写成
select DATE_FORMAT(date,"%Y-%m") AS `date`

请教一个 Group By 的问题

这个SQL语句就失效了,这是为什么? AS 不能写同名字段吗? 如果我一定要写同名字段应该要怎么做呢?谢谢

悲观者永远正确,乐观者永远前行。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
最佳答案

你查询时候用的format函数,但是你分组的时候还是用的date呀,怎么做你应该懂了吧

select DATE_FORMAT(date,"%Y-%m") AS `date`, SUM(activated) as activated from `users_log` where `date` between '2021-01-02' and '2021-07-26' group by DATE_FORMAT(date,"%Y-%m")

你之前的写法只是把查询出的date转换了下,最后分组的时候还是对每条数据按天数date进行分组的

2年前 评论
wanzi (作者) 2年前
MArtian (楼主) 2年前
讨论数量: 3

反问你一下,如果你让你写MySQL 的GROUP BY 字段逻辑 ,你怎么写? 表中有一个 date 字段 ,又新生成一个 date 字段别名,不就和有缓存拿缓存 ,没缓存拿DB 一样吗? 个人理解

2年前 评论

你是不是漏修改最后 group by 的字段名了? :joy:

group by `date`
2年前 评论
MArtian (楼主) 2年前

你查询时候用的format函数,但是你分组的时候还是用的date呀,怎么做你应该懂了吧

select DATE_FORMAT(date,"%Y-%m") AS `date`, SUM(activated) as activated from `users_log` where `date` between '2021-01-02' and '2021-07-26' group by DATE_FORMAT(date,"%Y-%m")

你之前的写法只是把查询出的date转换了下,最后分组的时候还是对每条数据按天数date进行分组的

2年前 评论
wanzi (作者) 2年前
MArtian (楼主) 2年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!