mysql 数据操作 单表查询 group by 练习

Posted minger_lcm

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql 数据操作 单表查询 group by 练习相关的知识,希望对你有一定的参考价值。

 

 

 

 

1. 查询岗位名以及岗位包含的所有员工名字

mysql> select post,group_concat(name) from employee group by post;
+-----------+-------------------------------------------------+
| post      | group_concat(name)                              |
+-----------+-------------------------------------------------+
| operation | 程咬铁,程咬铜,程咬银,程咬金,张野                |
| sale      | 格格,星星,丁丁,丫丫,歪歪                        |
| teacher   | 成龙,jinxin,jingliyang,liwenzhou,yuanhao,alex   |
+-----------+-------------------------------------------------+
3 rows in set (0.00 sec)

 



2. 查询岗位名以及各岗位内包含的员工个数
mysql> select post,count(id) from employee group by post;
+-----------+-----------+
| post      | count(id) |
+-----------+-----------+
| operation |         5 |
| sale      |         5 |
| teacher   |         6 |
+-----------+-----------+
3 rows in set (0.00 sec)

 


3. 查询公司内男员工和女员工的个数
mysql> select sex,count(id) from employee group by sex;
+--------+-----------+
| sex    | count(id) |
+--------+-----------+
| male   |         8 |
| female |         8 |
+--------+-----------+
2 rows in set (0.00 sec)


4. 查询岗位名以及各岗位的平均薪资
mysql> select post,avg(salary) from employee group by post;
+-----------+---------------+
| post      | avg(salary)   |
+-----------+---------------+
| operation |  16800.026000 |
| sale      |   2600.294000 |
| teacher   | 175766.718333 |
+-----------+---------------+
3 rows in set (0.00 sec)

 


5. 查询岗位名以及各岗位的最高薪资
mysql> select post,max(salary) from employee group by post;
+-----------+-------------+
| post      | max(salary) |
+-----------+-------------+
| operation |    20000.00 |
| sale      |     4000.33 |
| teacher   |  1000000.31 |
+-----------+-------------+
3 rows in set (0.00 sec)

 


6. 查询岗位名以及各岗位的最低薪资
mysql> select post,min(salary) from employee group by post;
+-----------+-------------+
| post      | min(salary) |
+-----------+-------------+
| operation |    10000.13 |
| sale      |     1000.37 |
| teacher   |     2100.00 |
+-----------+-------------+
3 rows in set (0.00 sec)


7. 查询男员工与男员工的平均薪资,女员工与女员工的平均薪资
mysql> select sex,avg(salary) from employee group by sex;
+--------+---------------+
| sex    | avg(salary)   |
+--------+---------------+
| male   | 136700.055000 |
| female |   7250.183750 |
+--------+---------------+
2 rows in set (0.00 sec)

 


8. 查询岗位名以及各岗位内 年龄50岁以上 包含的员工个数

先把年龄大于50岁的 先取出来 然后进行分组
mysql> select post,count(id) from employee where age >50 group by post;
+---------+-----------+
| post    | count(id) |
+---------+-----------+
| teacher |         2 |
+---------+-----------+
1 row in set (0.00 sec)

 




 


















以上是关于mysql 数据操作 单表查询 group by 练习的主要内容,如果未能解决你的问题,请参考以下文章

解析mysql中:单表distinct多表group by查询去除重复记录

mysql 数据操作 单表查询 查询排序: order by

当进行数据的去重查询时,使用group by效率更高。

单表查询: where group by 分组 having distinct 去重 order by 排序 limit 多表查询 子查询 连表查询

sql 单表distinct/多表group by查询去除重复记录

mysql 数据操作 单表查询 having 过滤 练习