请教一个 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 不能写同名字段吗? 如果我一定要写同名字段应该要怎么做呢?谢谢

悲观者永远正确,乐观者永远前行。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《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年前

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