mysql 连接查询分组_详解MySQL中的分组查询与连接查询语句
分组查询 group bygroup by 属性名 [having 条件表达式][ with rollup]
“属性名 ”指按照该字段值进行分组;“having 条件表达式 ”用来限制分组后的显示,满足条件的结果将被显示;with rollup 将会在所有记录的最后加上一条记录,该记录是上面所有记录的总和。
1)单独使用
group by 单独使用,查询结果只显示一个分组的一条记录。
实例:
select * from employee group by sex;
将只显示男女两条记录。
2)与group_concat()函数一起使用
每个分组中指定字段值都显示出来
实例:
select sex,group_concat(name) from employee group by sex;
显示结果中“女”会显示所有sex为“女”的名字name
sex | group_concat(name)
女 | 小红,小兰
男 | 张三,王五,王六
3)与集合函数一起使用
实例:
select sex,count(sex) from employee group by sex;
结果:
sex | count(num)
女 | 1
男 | 3
count()为计算个数的方法。
4)与having一起使用
“having条件表达式”,可以限制输出结果。只有满足条件表达式的结果才显示。
实例:
select sex,count(sex) from employee group by sex having count(sex) >= 3;
结果:
sex | count(sex)
男 | 3
“having条件表达式”作用于分组后的记录。
5)按多字段进行分组
select * from employee group by d_id,sex;
查询结果先按d_id分组,再按sex进行分组
6) 与with rollup一起使用
使用with rollup将会在所有记录的最后加上一条记录,这条记录是上面所有记录的总和
实例:
select sex,count(sex) from employee group by sex with rollup;
结果:
sex | count(sex)
女 | 1
男 | 5
null | 6
如果是字符串的话,比如姓名就会生成“张三,李四,王五”这种类型的结果,即name总和。
连接查询将两个及两个以上的表连接起来选取所需数据。
1)内连接查询:
当两个表中具有相同意义的字段值相等时,就查询出该条记录。
实例:
select num,name,employee.d_id,age,d_name from employee,department where employee.d_id = department.d_id
因字段名相同,所以取d_id字段值时最好指定哪张表的字段。
2)外连接查询
select 属性名列表 from 表名1 left|right join 表名2 on 表名1.属性名1=表名2.属性名2;
左连接查询:
进行左连接查询时,可以查出表名1中所指的表中所有记录。而表名2所指表中,只能查询出匹配的记录。
实例:
select num,name,employee.d_id,age,d_name from employee left join department on employee.d_id = department.d_id;
右连接查询:
与左连接相反,可以查询出表名2中的的所有记录,而表名1中所指的表中,只查询出匹配的记录。
PS:使用集合函数查询集合函数包括count(),sum(),avg(),max()和min()。
1)count()函数
统计记录条数
实例:
select count(*) from employee;
与group by一起使用
select d_id,count(*) from employee group by d_id;
上述语句会先分组后统计。
2) sum()函数
sum()函数是求和函数
实例:
select num,sum(score) from grade where num= 1001;
select num,sum(score) from grade group by num;
sum()只能计算数值类型字段。
3)avg()函数
avg()函数是求平均值函数。
实例:
select avg(age) from employee;
select course,avg(score) from group by course;
4)max(),min()函数
求最大值和最小值。
实例:
select max(age) from employee;
select num,course,max(score) from grade group by course;
对于字符串的最大值问题,max()函数是使用字符对应的ascii码进行计算的。
mysql 连接查询分组_详解MySQL中的分组查询与连接查询语句相关推荐
- mysql通配符escape使用_详解MySQL like如何查询包含'%'的字段(ESCAPE用法)
在SQl like语句中,比如 SELECT * FROM user WHERE username LIKE '%luchi%' SELECT * FROM user WHERE username L ...
- mysql通配符escape使用_详解MySQL like如何查询包含#39;%#39;的字段(ESCAPE用法)-MySQL教程-Web开发者网...
在SQl like语句中,比如 SELECT * FROM user WHERE username LIKE '%luchi%' SELECT * FROM user WHERE username L ...
- mysql 数据分组_详解MySQL 数据分组
创建分组 分组是在select语句中的group by 子句中建立的. 例: select vend_id, count(*) as num_prods from products group by ...
- mysql临键锁_详解 MySql InnoDB 中的三种行锁(记录锁、间隙锁与临键锁)
详解 MySql InnoDB 中的三种行锁(记录锁.间隙锁与临键锁) 前言 InnoDB 通过 MVCC 和 NEXT-KEY Locks,解决了在可重复读的事务隔离级别下出现幻读的问题.MVCC ...
- mysql mgr 三节点_详解MySQL 5.7 MGR单主确定主节点方法
我们行MGR年底要上线了,每天都要看官方文档学习,做测试,坚持每天写一个小知识点,有想一起学习的么~ MySQL 5.7 MGR单主确定主节点是哪个,我们可以通过成员ID来判断,然后结合read_on ...
- mysql 编辑数据库内容_详解mysql数据库增删改操作
插入数据 insert into 表名(列名1,列名2,列名3) values(值1,值2,值3); insert into user(user_id,name,age) values(1,'nice ...
- mysql 连接 分组_详解MySQL中的分组查询与连接查询语句
分组查询 group by group by 属性名 [having 条件表达式][ with rollup] "属性名 "指按照该字段值进行分组:"having 条件表 ...
- mysql内连接部门平均值_详解MySql基本查询、连接查询、子查询、正则表达查询_MySQL...
查询数据指从数据库中获取所需要的数据.查询数据是数据库操作中最常用,也是最重要的操作.用户可以根据自己对数据的需求,使用不同的查询方式.通过不同的查询方式,可以获得不同的数据.MySQL中是使用SEL ...
- mysql join 组合索引_详解MySQL两表关联的连接表创建单列索引还是组合索引最优...
概述 今天主要介绍一下MySQL中两表关联的连接表是如何创建索引的相关内容,下面来看看详细的介绍. MySQL两表关联的连接表创建索引 创建数据库的索引,可以选择单列索引,也可以选择创建组合索引. 假 ...
最新文章
- Servlet、MySQL中文乱码
- Spring事务管理只对出现运行期异常进行回滚
- 进程和线程的区别?什么时候用进程?什么时候用线程?
- 10个顶级的CSS UI开源框架
- 【Android开发】布局管理器-线性布局
- python3.7.2安装-ubuntu下编译安装Python3.7.2
- 选购计算机性能的核心指标,选电脑主要看什么参数呢?买电脑主要看什么参数,有什么技术指标?...
- php 策略模式实现原理,php 策略模式原理与应用深入理解
- 51Nod 1298 圆与三角形相交 计算几何
- hadoop 入门实例【转】
- Vue2+WebPack2使用css/sass+postcss的autoprefixer
- 《剑指offer》面试题60——把二叉树打印成多行(C++)
- ott盒子 MySQL_LAMP源码环境搭建与phpmyadmin的使用
- Unity音频可视化插件
- php smarty 翻译标签,Smarty自定义block标签
- 浏览器端精准打印或套打组件
- 今天,腾讯云总裁邱跃鹏表示,云计算发展要迈过三道关……
- 湖北湖南广州计算机科学大学排行,校友会2018中国大学计算机类专业排名
- DBF文件的初步了解(一)
- 从零开始学Java编程!java数据结构面试题
热门文章
- 中职计算机网络技术教学大纲,计算机网络技术课程教学大纲
- asp.net oracle连接数据库,ASP.NET连接Oracle数据库的步骤详解
- 长短期记忆网络_科研成果快报第181期:改进的长短期记忆网络用于长江上游干支流径流预测...
- tortoisegit中文_tortoiseGit实用教程
- java的gc策略_Java的GC与内存分配策略
- java 中的 什么意思啊_JAVA 中的 - 是什么意思?
- java的handleback类,CallbackHandler
- Hibernate简介
- MySQL索引常用算法
- Response to preflight request doesn‘t pass access control check: The value of the ‘Access-Control-Al