sql分组

SQL(oracle) 取得分组后最大值记录

半城伤御伤魂 提交于 2019-12-06 22:05:34
select * from (select t.*, row_number() over(partition by 分组字段 order by 排序字段 desc ) rn from tablename t ) where rn=1 select * from (select t.*, row_number() over(partition by campaignid order by createat desc) rn from app_campaigntype_summary t where createat <= to_date('2015-01-09', 'yyyy-mm-dd')) where rn = 1 来源: oschina 链接: https://my.oschina.net/u/2280055/blog/373902

找出所有员工当前(to_date='9999-01-01')具体的薪水salary情况,对于相同的薪水只显示一次,并按照逆序显示

我们两清 提交于 2019-12-06 15:16:18
一开始是这样写的,后来看了其他大佬的写法之后改为 “Group By”从字面意义上理解就是根据“By”指定的规则对数据进行分组,所谓的分组就是将一个“数据集”划分成若干个“小区域”, 然后针对若干个“小区域”进行数据处理。 另外根据菜鸟教程上的提示,Group By多与聚合函数搭配使用 https://www.runoob.com/sql/sql-groupby.html 来源: https://www.cnblogs.com/jiguang321/p/11992279.html

SQL简介

耗尽温柔 提交于 2019-12-06 13:11:53
1,为什么使用数据库? 作用,对数据进行持久化的操作 2,数据库的存储结构 表格:用于存储的数据结构 3,数据库分类 SQL:适用于所有数据库的增删改查,权限分配的结构化查询(查得多)语言 标准sql oracle:pl-sql:功能扩展,只适用oracle 数据库分类 关系型数据库:oracle,mysql,sqlserver NOSQL:效率高,不用sql: HBase,Redis(存储在内存), 文档存储(MongoDB) 访问方式 dos 主页 客户端 1,备份数据库 mysqldump -u root -p --all-databases>./mysql.sql 备份到当前目录下,带数据备份 2,列操作 添加列:alter table name add(列名,类型 默认值 约束,列名2 类型) 删除列:alter table name drop (zuduan) 修改列名alter table name rename old to new 级联删除表 drop table name cascade constraint 修改列的属性 alter table name modify(列名 类型 默认值....) 删除约束 alter table name drop constraint 约束名;建表时可指定 例:name char constraint1 primary

mysql3_查询

痞子三分冷 提交于 2019-12-06 06:54:42
# ### mysql查询 """注意: select后面跟的值要用 , 隔开,group by后面的多个值也要用 , 隔开""" """分组后组里有多项的字段,用group_concat括起来""" """提到"各"就要记得用分组,各部门,各班级...""" # sql 查询语句的完整语法 '''select from where group by having order by limit''' # 一.where 条件的使用 """功能:对表中的数据进行筛选过滤""" 语法: 1.= > < >= <= 不等于(!= <>)(都是不等于),判断的符号: 2.and or not 拼接条件的关键字 3. between and 查询的区间范围值 between between 小值 and 大值 [小值,大值] 查询两者之间这个范围的所有数据(两个边界值都能取到) 4. in 查询具体某个值的范围 in(1,-9,-10,"a") 指定范围 5. like "%" 模糊查询 通配符 like "%a" 匹配以a结尾的任意长度的字符串 like "a%" 匹配以a开头的任意长度的字符串 like "%a%" 匹配含有a字母的任意长度字符串 like "_a" 个数一共2个字符,必须以a结尾,前面这个字符随意 like "a__" 个数一共3个字符,必须以a开头,后面这个两字符随意

sql —— group by

强颜欢笑 提交于 2019-12-06 02:34:31
说明: 从字面意义上理解就是根据“By”指定的规则对数据进行分组,所谓的分组就是将一个“数据集”划分成若干个“小区域”,然后针对若干个“小区域”进行数据处理。 原表: 执行分组查询: select Gender,count(*) as 人数 from Students group by Gender 效果: 来源: https://www.cnblogs.com/xulinjun/p/11957314.html

MySQL数据库(二)——SQL

让人想犯罪 __ 提交于 2019-12-06 02:21:59
一、SQL的概念 1.什么是SQL 结构化查询语言(structured query language)简称SQL,SQL语句就是对数据库进行操作的一种语言。 2.SQL的作用 通过SQL语句我们可以方便的操作数据库中的数据、表、数据库。SQL是数据库管理系统都需要遵循的规范。不同的数据库生产厂商都支持SQL语句,但都有特有内容。 3.SQL语句的分类 (1)DDL(Data Definition Language)数据定义语言 用于定义数据库对象:数据库、表、列等。关键字:create、drop、alter等。 (2)DML(Data Manipulation Language)数据操作语言 用来对数据库中表的数据进行增删改。关键字:insert、delete、update等。 (3)DQL(Data Query Language)数据查询语言 用于查询数据库中表的记录(数据)。关键字:select、where等。 (4)DCL(Data Control Language)数据控制语言 用于定义数据库的访问权限和安全级别,及创建用户 。关键字:GRANT、REVOKE等。 4.SQL通用语法 SQL语句可以单行或多行书写,以分号结尾。 可使用空格和缩进来增强语句的可读性。 MySQL数据库的SQL语句不区分大小写,关键字建议使用大写。例如:SELECT * FROM

Oracle数据库-sql语句

拥有回忆 提交于 2019-12-05 21:01:34
单表的查询语句 1、查询表的所有数据 select * from 表名;*代表所有   select * from emp; 2、查询表中指定字段的值 select 字段名1,字段名2,...from表名    select empno,ename from emp; 3、给查询结果中的字段使用别名   在字段名后使用关键字 字段名 as "别名"   作用:方便查看查询结果   注意:as关键字可以省略不写,别名中没有特殊字符双引号也可以省略不写。   select empno 员工编号,ename"员工 姓名",job as 工作,mgr as "领导编号" from emp; 4、连接符:select 字段名||'字符'||字段名||..... from 表名   ||为sql语句的字符链接符,使用在select和from之间   字符链接格式为 字段名||'字符'||字段名   注意:一个拼接好的连接在结果集中是作为一个新的字段显示,可以使用别名优化字段显示。   select empno||'的姓名是'||ename as "信息",job||'哈哈'||mgr from emp; 5、去除重复 select distinct 字段名,字段名,...fromn 表名   注意:去除重复的规则是按照行进行去除的,多行数据完全相同取其一   select distinct

sql分组求最大值

徘徊边缘 提交于 2019-12-05 20:02:08
获取分组后取某字段最大一条记录 方法一:(效率最高) select * from test as a where typeindex = (select max(b.typeindex) from test as b where a.type = b.type ); 方法二:(效率次之) select a.* from test a, (select type,max(typeindex) typeindex from test group by type) b where a.type = b.type and a.typeindex = b.typeindex order by a.type 方法三: select a.* from test a inner join (select type , max(typeindex) typeindex from test group by type) b on a.type = b.type and a.typeindex = b.typeindex order by a.type 方法四:(效率最低) select * from ( select *,ROW_NUMBER() OVER(PARTITION BY type ORDER BY typeindex DESC) as num from test ) t where t

高级查询

浪子不回头ぞ 提交于 2019-12-05 14:48:29
高级查询 聚合函数 (一)COUNT()函数:用来统计记录的条数 语法格式如下所示: SELECT COUNT(*) FROM 表名; 例如:(1)查询student表中一共有多少条记录,SQL语句及其执行结果如下所示: (二) SUM()函数:用于求出表中某个字段所有值的总和 语法格式如下所示: SELECT SUM(字段名) FROM 表名; 例如:(1)求出student表中grade字段的总和,SQL语句及其执行结果如下所示: (三) AVG()函数:用于求出某个字段所有值的平均值 语法格式如下所示: SELECT AVG(字段名) FROM student; 例如:(1)求出student表中grade字段的平均值,SQL语句及其执行结果如下所示: (四)MAX()函数:用于求出某个字段的最大值 语法格式如下所示: SELECT MAX(grade) FROM student; 例如:(1)求出student表中所有学生grade字段的最大值,SQL语句及其执行结果如下所示: (五)MIN()函数:用于求出某个字段的最小值 语法格式如下所示: SELECT MIN(grade) FROM student; 例如:(1)求出student表中grade字段的最小值,SQL语句如下所示: 2. 对查询结果排序 (一) 使用ORDER BY对查询结果进行排序。 语法格式如下所示

MySql学习笔记一

谁都会走 提交于 2019-12-05 12:26:11
MySql学习笔记一 1.SQL 分类 DDL(Data Definition Language)数据定义语言 DML(Data Manipulation Language)数据操作语言 DQL(Data Query Language)数据查询语言 DCL(Data Control Language)数据控制语言 TCL(Transaction Control Language)事务控制语言 2.常见指令 查看当前所有数据库: show databases 打开指定的库:use 库名 查看当前库的所有表:show tables 查看其它库的所有表:show tables from 库名 创建表:create table 表名( ​ 列名 列类型, ​ 列名 列类型, ​ ...... ); 查看表结构:DESC 表名 查看服务器版本: select version() || mysql --V 查看字符集: Show variables like '%char%' 查看当前用户:Select USER(); 3.DQL(数据查询语言) 3.1基础查询 select 查询列表 from 表名 查询列表可以是:表中字段、常量、表达式、函数 查询的结果是一个虚拟机的表格 3.1.1.常用关键字 3.1.1.1.起别名 as 或者 空格 例如 select 字段名 as a from 表名