写SQL的心得

1、统计 COUNT(列名) 和COUNT(*)均可,区别是前者只会统计非NULL。

2、where后面不能跟聚合函数,用的话应该在Having使用,因此需要先分组GroupBy

where是基于行过滤,having是基于分组过滤

3、虽然执行顺序中having、group by在select后面,但是它们还是可以用select中定义的别名

执行顺序 :from > on > where > group by > having > select > distinct > order by > top

但是,MYSQL 中HAVING是可以使用SELECT中定义的别名。HAVING、GROUP BY都可以使用SELECT中定义的别名。

具体来说,在执行 SELECT 子句时,系统先计算 SELECT 中的列表达式和函数等,然后为这些列赋予一个列别名,并生成一个虚拟的查询结果表。接着,系统按照 GROUP BY 子句中的指定字段分组,并对每个分组进行计算,生成虚拟的分组结果表。最后,HAVING 子句基于这个虚拟的分组结果表进行筛选操作。

由于在执行 HAVING 子句时已经生成了虚拟的查询结果表和虚拟的分组结果表,已经存在列别名,但是没有值,因此 HAVING 子句可以直接引用 SELECT 列别名。

4、聚合函数本质:对指定的列进行聚合,如果我们用了group by,我们可以对每个分组应用内聚合函数。在分组内部,聚合函数会自动处理所有重复的行。举例子:

一个表中,记录了销售员ID、销售日期。需求是计算每个销售员的总销售额。

我们对ID进行分组,这样通过聚合函数SUM能将同一分组的销售额累加起来【即同一个销售员】

SELECT salesperson_id, SUM(sales_amount) AS total_sales
FROM sales_records
GROUP BY salesperson_id;

相关推荐

  1. SQL心得

    2024-05-12 11:56:05       7 阅读
  2. 一段防止sql注入sql查询

    2024-05-12 11:56:05       28 阅读
  3. 工作心得

    2024-05-12 11:56:05       10 阅读
  4. 了几个难一点sql

    2024-05-12 11:56:05       16 阅读
  5. MySQL优化器SQL规则

    2024-05-12 11:56:05       10 阅读
  6. 43.django里自定义sql进行查询

    2024-05-12 11:56:05       6 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-05-12 11:56:05       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-05-12 11:56:05       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-05-12 11:56:05       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-05-12 11:56:05       18 阅读

热门阅读

  1. 相机3:曝光三要素之光圈与快门

    2024-05-12 11:56:05       7 阅读
  2. 一次基类类型对象无法被传递问题的分析

    2024-05-12 11:56:05       8 阅读
  3. 函数指针和指针函数的区别

    2024-05-12 11:56:05       12 阅读
  4. 机器学习中的数据集的收集方法和工具

    2024-05-12 11:56:05       10 阅读
  5. 【C语言】预处理器

    2024-05-12 11:56:05       12 阅读
  6. conda 常用的命令

    2024-05-12 11:56:05       9 阅读
  7. 为什么PHP 是一门弱类型语言?

    2024-05-12 11:56:05       8 阅读
  8. WPF之页的使用

    2024-05-12 11:56:05       9 阅读
  9. svg 元素 getBoundingClientRect() 数值为 0

    2024-05-12 11:56:05       12 阅读
  10. go自定义error

    2024-05-12 11:56:05       12 阅读
  11. python列表相关命令

    2024-05-12 11:56:05       10 阅读
  12. 从零学算法68

    2024-05-12 11:56:05       11 阅读
  13. TCP协议、HTTP协议、HTTP请求、HTTP长连接

    2024-05-12 11:56:05       9 阅读
  14. python改变图片大小

    2024-05-12 11:56:05       10 阅读