sql分组

【MySQL】分组+嵌套

匿名 (未验证) 提交于 2019-12-02 22:02:20
文章目录 分组 对于分组条件+分组函数的查询 嵌套 分组 group by 列 如果SQL语句中一旦搭配了分组条件,能展示的信息只有两种 分组条件 分组函数 先看一下studnet表: 查询student表中每一个班级有多少个同学 查询student表中男,女同学的人数 查询student表中每个年龄层段有多少人 查询student表中每一个班级的语文平均分 查询student表中每一个班级的语文平均分,并且按照平均分升序排序 对于分组条件+分组函数的查询 查询student表中所有男同学,他们都在哪个班级 先进行 where ,再进行分组 group by 查询student表中语文平均成绩高于90分的班级 先分组,再对平均成绩条件筛选 ( 但是 where 比 group by 的优先级别高 ) 所以SQL给我们提供了一个关键字 having ,它的用法和 where 差不多,但是它的优先级比 group by 低 所以,一般 group by 和 having 搭配使用 在查询之前需要先考虑,到底是先分组,还是先筛选条件 如果是先筛选,后分组 where + group by 如果是先分组,再筛选 group by + having 在查询的时候一旦分组了,行数会减少 想要展示的信息的个数需要与分组条件的个数一致 嵌套 在一个完整的SQL语句中,嵌套了另一个完整的SQl语句

八、分组查询详解(group by & having)

强颜欢笑 提交于 2019-12-02 18:23:46
本篇内容 分组查询语法 聚合函数 单字段分组 多字段分组 分组前筛选数据 分组后筛选数据 where和having的区别 分组后排序 where & group by & having & order by & limit 一起协作 mysql分组中的坑 in多列查询的使用 一、分组查询      语法:   SELECT column, group_function,... FROM table  [WHERE condition]  GROUP BY group_by_expression  [HAVING group_condition];  说明:         group_function:聚合函数。     group_by_expression:分组表达式,多个之间用逗号隔开。     group_condition:分组之后对数据进行过滤。     分组中,select后面只能有两种类型的列: 出现在group by后的列 或者使用聚合函数的列 二、聚合函数 函数名称 作用 max 查询指定列的最大值 min 查询指定列的最小值 count 统计查询结果的行数 sum 求和,返回指定列的总和 avg 求平均值,返回指定列数据的平均值   分组时,可以使用使用上面的聚合函数。 三、单字段分组   SELECT user_id 用户id, COUNT(id) 下单数量

Oracle笔记1

一笑奈何 提交于 2019-12-02 16:15:00
1. 口令管理的界面 超级管理员账户: sys-change_on_install; 普通管理员: system-manager; [解锁]普通用户: scott-tiger; [解锁]大数据用户: sh-sh 2. 如果要进行oracle的卸载需要三步 a.执行Oracle提供的卸载程序; b.进入注册表(regedit.exe),然后删除掉与Oracle有关的配置项; c.重启电脑,进入安全模式,删除所有Oracle文件 3. 安装完成之后,关闭开机自启 在计算机管理中将Oracle的服务全部改成[手动]启动,共有八个,有两个是禁用的 OracleVssWriterMLDN、OracleDBConsolemldn、OracleMTSRecoveryService OracleOraDb11g_home1ClrAgent、OracleOraDb11g_home1TNSListener、OracleServiceMLDN 4. 简化输入:在dos窗口,输入sqlplus scott/tiger 如果想要知道当前的登录账户是哪一位:show user; 切换账户:conn 用户名[/密码][AS SYSDBA]; 如果使用超级管理员则必须追加"AS SYSDBA" 切换到system账户:conn system/manager; 切换到sys账户:conn sys/change_on

sql中where和having的区别

拟墨画扇 提交于 2019-12-02 12:56:35
sql中where和having的区别 用的地方不一样 where可以用于select、update、delete和insert into values(select * from table where ..)语句中。 having只能用于select语句中 执行的顺序不一样 where的搜索条件是在执行语句进行分组之前应用 having的搜索条件是在分组条件后执行的 即如果where和having一起用时,where会先执行,having后执行 子句有区别 where子句中的条件表达式having都可以跟,而having子句中的有些表达式where不可以跟;having子句可以用集合函数(sum、count、avg、max和min),而where子句不可以。 总结 1.WHERE 子句用来筛选 FROM 子句中指定的操作所产生的行。 2.GROUP BY 子句用来分组 WHERE 子句的输出。 3.HAVING 子句用来从分组的结果中筛选行 来源: https://blog.csdn.net/weixin_44787000/article/details/102761228

Mysql常用查询

丶灬走出姿态 提交于 2019-12-01 23:31:45
IN/NOT IN操作符:查询满足(不满足)指定范围内的条件的记录。 s_id为101和102的记录: MYSQL> SELECT s_id, s_name FROM fruits WHERE s_id IN (101,102); s_id不等于101和102的记录: MYSQL> SELECT s_id, s_name FROM fruits WHERE s_id NOT IN (101,102); BETWEEN AND/NOT BETWEEN AND查询: 查询指定范围内(外)的值(包括两个端点值),参数:范围的开始值和结束值。 查询f_price在2~10之间的记录: MYSQL> SELECT f_name, f_price FROM fruits WHERE f_price BETWEEN 2 AND 10; LIKE操作符: 模糊查询,“%”匹配任意长度的字符,“_”匹配任意一个字符。 查询以b开头的记录: MYSQL> SELECT f_name FROM fruits WHERE f_name LIKE 'b%'; 查询匹配ball的记录: MYSQL> SELECT f_name FROM fruits WHERE f_name LIKE 'bal_'; NULL值查询: 如果某个字段设置为NULL(NULL不等于0,也不等于空字符串),则可使用IS

SQL结构化查询语——之DQL语言

馋奶兔 提交于 2019-12-01 19:24:28
记忆思路: SQL的DQL语言select查询命令。 from 从哪个表中 where 以什么条件 select 查询哪些列, order by 是否基于某字段排序, limit # 输出多少行。 一、单表查询 1. 常用查询语法: SELECT 输出显示字段 FROM 表名 无条件查询语法:SELECT 指定输出的列 FROM 表名 ; 限制输出语法:SELECT 指定输出的列 FROM 表名 LIMIT 显示记录数 ; 条件查询语法:SELECT 指定输出的列 FROM 表名 WHRER 查询条件 ; 条件查询再排序:SELECT 指定输出的列 FROM 表名 WHRER 查询条件 order by 指定排序字段 [desc|asc]; 条件查询并限制输出语法:SELECT 显示输出的列 FROM 表名 WHRER 查询条件 LIMIT 显示记录数 ; 2. SELECT过滤输出列: 实例一:输出显示表所有行与列,【 代表所有列】 SELECT FROM students; 查询students表的所有内容 实例二:输出显示字段以别名输出:【字段名 as 别名】注意as可以省略 SELECT name as 姓名,age as 年龄 FROM vmlab; SELECT name 姓名,age 年龄 FROM vmlab; 3. WHERE过滤输出行:通过where限定过滤条件

SQL结构化查询语——之DQL语言

夙愿已清 提交于 2019-12-01 19:24:21
记忆思路: SQL的DQL语言select查询命令。 from 从哪个表中 where 以什么条件 select 查询哪些列, order by 是否基于某字段排序, limit # 输出多少行。 一、单表查询 1. 常用查询语法: SELECT 输出显示字段 FROM 表名 无条件查询语法:SELECT 指定输出的列 FROM 表名 ; 限制输出语法:SELECT 指定输出的列 FROM 表名 LIMIT 显示记录数 ; 条件查询语法:SELECT 指定输出的列 FROM 表名 WHRER 查询条件 ; 条件查询再排序:SELECT 指定输出的列 FROM 表名 WHRER 查询条件 order by 指定排序字段 [desc|asc]; 条件查询并限制输出语法:SELECT 显示输出的列 FROM 表名 WHRER 查询条件 LIMIT 显示记录数 ; 2. SELECT过滤输出列: 实例一:输出显示表所有行与列,【 代表所有列】 SELECT FROM students; 查询students表的所有内容 实例二:输出显示字段以别名输出:【字段名 as 别名】注意as可以省略 SELECT name as 姓名,age as 年龄 FROM vmlab; SELECT name 姓名,age 年龄 FROM vmlab; 3. WHERE过滤输出行:通过where限定过滤条件

6.InfluxDB-InfluxQL基础语法教程--GROUP BY子句

孤街醉人 提交于 2019-12-01 16:13:06
本文翻译自官网,官网地址:( https://docs.influxdata.com/influxdb/v1.7/query_language/data_exploration/ ) GROUP BY子句通过用户自己制定的tags set或time区间,来将查询结果进行分组。 一、GROUP BY tags GROUP BY 通过用户指定的tag set,来对查询结果进行分组。 语法: SELECT_clause FROM_clause [WHERE_clause] GROUP BY [* | <tag_key>[,<tag_key]] GROUP BY子句 意义 GROUP BY * 使用所有tag对查询结果进行分组 GROUP BY <tag_key> 使用指定tag对查询结果进行分组 GROUP BY <tag_key>,<tag_key> 使用指定的多个tag对查询结果进行分组,其中tag之间的顺序是无关的。 注 :如果在sql中同时存在WHERE子句和GROUP BY子句,则GROUP BY子句一定要在WHERE子句之后! Other supported features: Regular Expressions GROUP BY tags 示例sql Group query results by a single tag 上面的sql使用了MEAN函数,来对h2o

记录相关操作

邮差的信 提交于 2019-12-01 12:55:39
记录相关操作 一、插入数据 1. 插入完整数据(顺序插入) 语法一: INSERT INTO 表名(字段1,字段2,字段3…字段n) VALUES(值1,值2,值3…值n); 语法二: INSERT INTO 表名 VALUES (值1,值2,值3…值n); 2. 指定字段插入数据 语法: INSERT INTO 表名(字段1,字段2,字段3…) VALUES (值1,值2,值3…); 3. 插入多条记录 语法: INSERT INTO 表名 VALUES (值1,值2,值3…值n), (值1,值2,值3…值n), (值1,值2,值3…值n); 4. 插入查询结果 语法: INSERT INTO 表名(字段1,字段2,字段3…字段n) SELECT (字段1,字段2,字段3…字段n) FROM 表2 WHERE …; 二、更新数据 语法: UPDATE 表名 SET 字段1=值1, 字段2=值2, WHERE ...; 三、删除数据 语法: DELETE FROM 表名 WHERE ...; 四、查询数据 1.单表查询 单表查询的语法: SELECT 字段1,字段2... FROM 表名 WHERE 条件 GROUP BY field HAVING 筛选 ORDER BY field LIMIT 限制条数 关键字的执行优先级: 重点中的重点:关键字的执行优先级 from #找到表

4-2 单表查询

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-01 06:54:28
一 单表查询的语法 SELECT 字段1,字段2... FROM 表名 WHERE 条件 GROUP BY field HAVING 筛选 ORDER BY field LIMIT 限制条数 二 关键字的执行优先级(重点) 重点中的重点:关键字的执行优先级 from where group by having select distinct order by limit 1.找到表:from 2.拿着where指定的约束条件,去文件/表中取出一条条记录 3.将取出的一条条记录进行分组group by,如果没有group by,则整体作为一组 4.将分组的结果进行having过滤 5.执行select 6.去重 7.将结果按条件排序:order by 8.限制结果的显示条数 详细见:http://www.cnblogs.com/linhaifeng/articles/7372774.html 三 简单查询 company.employee 员工id id int 姓名 emp_name varchar 性别 sex enum 年龄 age int 入职日期 hire_date date 岗位 post varchar 职位描述 post_comment varchar 薪水 salary double 办公室 office int 部门编号 depart_id int #创建表