ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

Mysql-DBA--20220526 GROUP BY语句

2022-05-26 13:04:24  阅读:189  来源: 互联网

标签:count 语句 GROUP DBA 20220526 mode sql group tmp


1、guroup by

  

 

2、group by 两个字段(dbt3)

  

 

3、参数tmp_table_size,可以优化 group by 语句

  

 

4、参数tmp_table_size,默认16M

  

 

5、可以查看 created_temp_tables和created_tmp_disk_tables,来确定是否需要优化group by语句

  

 

6、可以通过flush status,然后再运行select语句,来判断是否需要优化参数

  

 

 7、建议将tmp_table_size设置成32M

  

 

8、count(1)、count(a)、count(*)的区别

  • count(1) = count(*)
  • count(a)表示,a列不为null的总条数

  

  • count(1) = count(2) = count(3) = count(100) = count(*)

  

 

9、count(1) 代表什么?

  

 

  • 同理,count(100)也是这个意思。

  

 

10、HAVING的用法举例

  

 

11、where语句和having语句的区别

  

 

  • 第二个语句,o_orderDATE放在having语句中,会报错。

  

 

  • 第二个select语句,可以改成如下(不要用o_orderDATE,改成month,就可以了。)

  

 

  • 执行结果如下:
    • 第一个语句和第二个语句的运行效率,有很大差别。

    • 第一个:0.00sec,第二个:3.13sec

  

 

  注意:having后面除了聚合函数,也可以用别的列(在select中出现的列)为条件。

 

12、在select中出现了group by字段以外的非聚合的字段,mysql5.7中会报错。

  • 注意:但在mysql5.6中不报错,而是随机出现一个值。

  

 

  • 这里会牵涉到一个参数:sql_mode
    • mysql5.7中,sql_mode中会有一个:ONLY_FULL_GROUP_BY
    • mysql5.6中,sql_mode没有:ONLY_FULL_GROUP_BY

  

 

  • 建议:在my.cnf中,把sql_mode改成严格模式。

  

 

 

13、group_cancat 聚合函数

  

 

  • 用冒号 区分。

  

 

  • 还可以用order by 排序

  

  • 可以倒序 desc

  

  • separator 要放在最后。

  

 

 

14、group_concat举例

  

 

  • 改进版的sql语句:

  

  • 改进版sql语句的执行结果:

   

 

标签:count,语句,GROUP,DBA,20220526,mode,sql,group,tmp
来源: https://www.cnblogs.com/lijfustc/p/16312665.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有