首页 > 数据库 >sql 查询(分组查询)

sql 查询(分组查询)

时间:2024-10-06 19:33:12浏览次数:1  
标签:salary group 查询 job 分组 emp sql avg SELECT

分组函数

group by

SELECT * FROM studetail;
group by stusex  根据性别进行分组
count() 统计个数
SELECT stusex, count(stusex) FROM studetail group by stusex ;

根据年龄进行分组统计个数
SELECT  stuage,count(*) FROM studetail group by stuage ;

根据性别进行分组求平均年龄
SELECT  stusex,avg(stuage)  FROM studetail group by stusex ;

根据性别分组  求最大值  / min  求最小年龄   
SELECT  stusex,max(stuage)  FROM studetail group by stusex ;


sum  求年龄的总和
SELECT  stusex,sum(stuage)  FROM studetail group by stusex ;
#HAVING  
条件的意思 与where差不多
SELECT * FROM studetail WHERE stuage >18;

分组后 还有其他条件  
根据性别进行分组 ,求分组后的平均年龄,获取平均年龄大于18岁的信息
SELECT  stusex,avg(stuage)  FROM studetail group by stusex HAVING avg(stuage) = 18;

根据工作岗位进行分组,求每一个组的平均工资,筛选平均工资大于5000的
SELECT job_position,avg(salary),count(*) FROM emp group by job_position HAVING avg(salary) > 5000 ;
SELECT sum(salary) FROM emp ;
SELECT avg(salary) FROM emp ;
SELECT max(salary) FROM emp ;

HAVING
根据工作岗位进行分组,求每一个组的平均工资,筛选平均工资大于5000的  从大到小排序
order by   desc  asc
SELECT job_position,avg(salary),count(*) FROM emp
group by job_position
HAVING avg(salary) > 5000
order by avg(salary) desc;

SELECT job_position,avg(salary),count(*) FROM emp
group by job_position
order by avg(salary) desc;

limit 限制行号

SELECT job_position,avg(salary),count(*) FROM emp
group by job_position
HAVING avg(salary) > 5000
order by avg(salary) desc
limit 3;


SELECT id,empname,salary FROM emp order by salary desc;

SELECT id,empname,salary FROM emp order by salary desc limit 3;

IFNULL

WITH ROLLUP 分组之后进行job_position求和IFNULL job_position
SELECT ifnull(job_position,"部门总和"),count(job_position) FROM emp
group by job_position  WITH ROLLUP;

SELECT deptid FROM students;
SELECT IFNULL(deptid,"1011") FROM students;

DISTINCT 去重

SELECT DISTINCT empname FROM emp;

left 截取

SELECT   left(salary,4) FROM emp;
SELECT   right(salary,3) FROM emp;
SELECT   substring(salary,1,4) FROM emp;  # 取第一个到第四个

CONCAT

SELECT CONCAT(salary,empname) as namesalry FROM emp;

SELECT NOW(); # 查询当前时间

SELECT * FROM department;
+-----+--------------------+
| did | dname |
+-----+--------------------+
| 102 | 上海交通大学 |
| 103 | 浙江大学 |
| 101 | 清华大学 |
| 105 | 理工学院 |
+-----+--------------------+
SELECT * FROM department join students on ;

+-----+---------+--------+
| sid | sname | deptid |
+-----+---------+--------+
| 1 | 张三 | 101 |
| 2 | 李四 | 102 |
| 3 | 王五 | 103 |
| 4 | 赵六 | 101 |
| 5 | 孙琪 | 102 |
| 6 | 小花 | 103 |
| 8 | 小测 | 105 |
| 9 | c俄式 | NULL |
+-----+---------+--------+

索引

建立约束的时候 会创建索引

show keys from students;
索引  书籍目录
id 

模糊查询

like _一个字符 % 任意给字符

SELECT empname from emp WHERE  empname like "_花";
SELECT empname from emp WHERE  empname like "%花%";

标签:salary,group,查询,job,分组,emp,sql,avg,SELECT
From: https://www.cnblogs.com/taketomyheart/p/18449321

相关文章

  • 前端媒体查询的用法及案例
    媒体查询:实现响应式设计的强大工具在数字时代,网页必须适应各种设备和屏幕尺寸,以满足用户不断变化的需求。这就是响应式设计的重要性所在,而媒体查询(MediaQueries)则是实现这一目标的强大工具。本文将深入探讨媒体查询的原理、用法以及它如何帮助设计师和开发者创建灵活、适......
  • 探索MySQL的InnoDB索引失效
    MySQL8+InnoDB- 序章索引失效,发生在已经建立索引,但是,查询(SELECT)时没有用到建立的(预期会用到)索引的情况下。失效原因有两个方面:1、建立索引的方式错误需要弄清楚 字段的#区分度(极其重要)这个概念。选择区分度高的建立索引。2、某些SELECT语句不支持使用索引注意,......
  • MySQL单表存多大的数据量比较合适
    前言经常使用MySQL数据库的小伙伴都知道,当单表数据量达到一定的规模以后,查询性能就会显著降低。因此,当单表数据量过大时,我们往往要考虑进行分库分表。那么如何计算单表存储多大的数据量合适?当单表数据达到多大的规模时,我们才要进行分库分表呢?MySQL存储方式首先我们要先了解一下......
  • SQL基础教程:从创建数据库到数据操作的全面指南
    SQL(StructuredQueryLanguage)是一种用于管理和处理关系型数据库的标准编程语言。它被设计用来执行诸如更新、检索、插入和删除数据等操作。SQL是访问和处理数据库的标准语言,被广泛应用于各种数据库系统中,如MySQL,Oracle,SQLServer,PostgreSQL等。以下是SQL的一些关键......
  • 【2024计算机毕业设计】基于jsp+mysql+Spring+mybatis的SSM药品进货销售仓储信息管理
    运行环境:最好是javajdk1.8,我在这个平台上运行的。其他版本理论上也可以。IDE环境:Eclipse,Myeclipse,IDEA或者SpringToolSuite都可以,如果编译器的版本太低,需要升级下编译器,不要弄太低的版本tomcat服务器环境:Tomcat7.x,8.x,9.x版本均可操作系统环境:WindowsXP/7......
  • sqlite 学习
    sqliteSQLite是一个轻量级的嵌入式关系型数据库管理系统(RDBMS),它实现了自给自足的、无服务器的、零配置的、事务性的SQL数据库引擎。以下是关于SQLite的详细介绍:一、SQLite的特点轻量级与嵌入式:SQLite是一个轻量级的数据库引擎,非常适合嵌入到各种应用程序中。它不需要独立的服务......
  • sql
     分组排序rank()over作用:查出指定条件后的进行排名,条件相同排名相同,排名间断不连续。说明:例如学生排名,使用这个函数,成绩相同的两名是并列,下一位同学空出所占的名次。即:1134557dense_rank()over作用:查出指定条件后的进行排名,条件相同排名相同,排名间断不连续。说明:和r......
  • [MySQL]为什么大厂选择读已提交
    为什么读已提交的并发性更好在数据库中,锁的时间和范围是影响并发性的重要因素。已提交读(ReadCommitted)隔离级别与可重复读(RepeatableRead)的主要区别就在于它们在读取数据时对锁的使用方式不同。让我们详细看看为什么已提交读的锁的时间和范围更小。1.已提交读(ReadCommitte......
  • 帝国CMS安装时出现You have an error in your SQL syntax错误代码的解决方法
    在安装EmpireCMS时遇到 YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyourMariaDBserverversionfortherightsyntaxtousenear'TYPE=MYISAM' 的错误,通常是由于数据库版本不兼容导致的。以下是详细的解决方法:1.选择正确的MySQL版......
  • 本地环境PHP帝国备份王备份报错mysql_escape_string(): This function is
    在使用帝国备份王进行备份和恢复时,如果遇到PHP5.5环境下的报错,通常是因为一些旧的MySQL函数已经被弃用或移除。具体来说,mysql_escape_string 函数在PHP5.5中已经被废弃,应该使用 mysql_real_escape_string 替代。解决方案定位问题文件:找到 function.php 文件的位置。......