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)