mysql-关于分组后用别名的尝试 以及lower(),trim(),replace()

本文探讨了MySQL中在GROUP BY后使用别名的特殊情况,解释了MySQL为何允许这一操作。同时介绍了字符串处理函数lower()、trim()、replace()的用法,包括它们的功能和示例,帮助理解如何在MySQL中进行数据清洗。
摘要由CSDN通过智能技术生成

一、 mysql 中group by 后是否可以用别名的思考(注意是在mysql中)

SQL语句的执行过程是:

  1. 先执行 FROM 表名
  2. 然后如果有 WHERE,就执行 WHERE 进行筛选
  3. 在执行完 WHERE 条件子句之后,就会执行 GROUP BY 这个分组操作
  4. 而执行完 GROUP BY 分完组之后才会去执行 SELECT

所以在执行 GROUP BY 的时候 SELECT 的语句还没有被执行过这些别名还没有生效呢,当然我们在 GROUP BY 里面就不能用它了,至于MySQL为什么可以这么用呢,那是因为 MySQL 对这个查询语法进行了一个特殊的强化,所以人家软件里面绐我们开了一个后门我们才可以使用它,算是 MySQL 里的专享特权

但是虽然 mysql分组后虽然能用别名,但是 group by 子句中列出的每个列都必须是检索列或有效的表达式,但不能是聚集函数

例:

写一个 SQL 语句报告每个月的销售情况:

product_name 是小写字母且不包含前后空格
sale_date 格式为 ('YYYY-MM') 
total 是产品在本月销售的次数
返回结果以 product_name 升序 排列,如果有排名相同,再以 sale_date 升序 排列。

查询结果格式如下所示:

Sales 表:
+------------+------------------+--------------+
| sale_id    | product_name     | sale_date    |
+------------+------------------+--------------+
| 1          |      LCPHONE     | 20
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值