postgresql----排序ORDER BY,分组GROUP BY,分页OFFSET&&LIMIT
一.GROUP BY
使用GROUP BY分组查询在SELECT子句中只能出现分组字段和聚合函数,HAVING子句相当于WHERE,使用条件过滤数据。
示例1.以a,b分组查询tbl_insert表,且a大于5的行。
test=# select a,b,count(*) from tbl_insert group by a,b having a > 5;
a | b | count
---+---+-------
7 | 7 | 4
8 | 8 | 2
6 | 6 | 3
(3 rows) test=# select a,b,count(*) from tbl_insert where a > 5 group by a,b;
a | b | count
---+---+-------
7 | 7 | 4
8 | 8 | 2
6 | 6 | 3
(3 rows)
示例2.以a,b分组查询tbl_insert表,且a,b组合相同的行数大于2的a,b组合
test=# select a,b,count(*) from tbl_insert group by a,b having count(*) > 2;
a | b | count
---+---+-------
7 | 7 | 4
6 | 6 | 3
(2 rows)
示例3.以a,b分组查询tbl_insert表,如果SELECT子句中包含其他字段,则ERROR。
test=# select a,b,c from tbl_insert group by a,b;
ERROR: column "tbl_insert.c" must appear in the GROUP BY clause or be used in an aggregate function
LINE 1: select a,b,c from tbl_insert group by a,b;
二.ORDER BY
使用ORDER BY对结果集进行排序,默认使用ASC升序排列,可指定DESC降序排列。
示例1.查询tbl_insert表按照a升序,c降序排列
test=# select * from tbl_insert where a > 6 order by a ,c desc;
a | b | c
---+---+-------
7 | 7 | abc
7 | 7 | aBC
7 | 7 | ABc
7 | 7 | 3%1
8 | 8 | 3_%_1
8 | 8 | 3%_1
(6 rows)
示例2.以字段a,b分组查询tbl_insert表,并按照各分组中行数降序排列。
test=# select a,b,count(*) from tbl_insert group by a,b order by count(*) desc;
a | b | count
---+---+-------
7 | 7 | 4
6 | 6 | 3
8 | 8 | 2
4 | 4 | 1
5 | 5 | 1
1 | 1 | 1
3 | 3 | 1
2 | 2 | 1
(8 rows)
三.LIMIT
使用LIMIT可以限制结果集的行数。
示例1.查询tbl_insert表,并以a降序排列,只输出前5行数据。
test=# select * from tbl_insert order by a desc limit 5;
a | b | c
---+---+-------
8 | 8 | 3_%_1
8 | 8 | 3%_1
7 | 7 | 3%1
7 | 7 | ABc
7 | 7 | abc
(5 rows)
四.OFFSET
使用OFFSET可以忽略前面的N行,与LIMIT结合使用可以实现分页功能。
示例1.查询tbl_insert表,并以a升序排列,前10行忽略不输出。
test=# select * from tbl_insert order by a offset 10;
a | b | c
---+---+-------
7 | 7 | ABc
7 | 7 | aBC
8 | 8 | 3%_1
8 | 8 | 3_%_1
(4 rows)
示例2.查询tbl_insert表,并以a升序排列,实现分页功能,每页5行数据。
test=# select * from tbl_insert order by a offset 0 limit 5;
a | b | c
---+---+----
1 | 1 | 11
2 | 2 | 22
3 | 3 | 33
4 | 4 | 44
5 | 5 | 51
(5 rows) test=# select * from tbl_insert order by a offset 5 limit 5;
a | b | c
---+---+-----
6 | 6 | 661
6 | 6 | 1
6 | 6 | 61
7 | 7 | 3%1
7 | 7 | abc
(5 rows) test=# select * from tbl_insert order by a offset 10 limit 5;
a | b | c
---+---+-------
7 | 7 | ABc
7 | 7 | aBC
8 | 8 | 3%_1
8 | 8 | 3_%_1
(4 rows)
postgresql----排序ORDER BY,分组GROUP BY,分页OFFSET&&LIMIT的更多相关文章
- MySQL之单表查询 一 单表查询的语法 二 关键字的执行优先级(重点) 三 简单查询 四 WHERE约束 五 分组查询:GROUP BY 六 HAVING过滤 七 查询排序:ORDER BY 八 限制查询的记录数:LIMIT 九 使用正则表达式查询
MySQL之单表查询 阅读目录 一 单表查询的语法 二 关键字的执行优先级(重点) 三 简单查询 四 WHERE约束 五 分组查询:GROUP BY 六 HAVING过滤 七 查询排序:ORDER B ...
- 第17课-数据库开发及ado.net 聚合函数,模糊查询like,通配符.空值处理.order by排序.分组group by-having.类型转换-cast,Convert.union all; Select 列 into 新表;字符串函数;日期函数
第17课-数据库开发及ado.net 聚合函数,模糊查询like,通配符.空值处理.order by排序.分组group by-having.类型转换-cast,Convert.union all; ...
- 18 12 06 sql 的 基本语句 查询 条件查询 逻辑运算符 模糊查询 范围查询 排序 聚合函数 分组 分页 连接查询 自关联 子查询
-- 数据的准备 -- 创建一个数据库 create database python_test charset=utf8; -- 使用一个数据库 use python_test; -- 显示使用的当前 ...
- MySQL—增删改查,分组,连表,limit,union,alter,排序,去重
MySQL增删改查 在表格的增删改查中,查的内容是最多的,包括group by ,join,limit,union,alter,排序都是服务于查的 #sql语句数据行操作补充 #增加: #insert ...
- mysql概要(四)order by,group 的特点,子查询
1.order by 默认按升序排列(asc/desc),多字段排序 order by 字段 排序方式,字段2 排序方式,..:在分组排序中,排序是对分组后的结局进行排序,而不是在组中进行排序. 2. ...
- linq中order by 和group by (含lambda表达式实现)以及综合案例
一.Linq应用场景 linq的语法通过System.Linq下面的Enumerable类提供支持,也就是说,只要是实现了IEnumerable<T>的对象都可以使用Linq的语法来查询. ...
- ORDER BY,GROUP BY 和DI STI NCT 优化
读<MySQL性能调优与架构设计>笔记之ORDER BY,GROUP BY 和DI STI NCT 优化 2015年01月18日 18:51:31 lihuayong 阅读数:2593 标 ...
- mysql-in关键字,分组查询,分页查询
1. in关键字,组查询 # 使用or来查询的化,不方便而且参数一多比较傻 select * from users where id=1 or id=2 or id=4; select * from ...
- 【SQL】分组数据,过滤分组-group by , having
学习笔记,原文来自http://blog.csdn.net/robinjwong/article/details/24845125 创建分组 - GROUP BY 分组是在SELECT语句的GROUP ...
随机推荐
- Hbase建模
转自:http://blog.itpub.net/28912557/viewspace-1119865/ 什么情况下使用Hbase?1,成熟的数据分析主题,查询模式已经确定并且不易轻易改变.(主要还是 ...
- Linux如何通过命令查看日志文件的某几行(中间几行或最后几行)
linux 如何显示一个文件的某几行(中间几行) [一]从第3000行开始,显示1000行.即显示3000~3999行 cat filename | tail -n +3000 | head -n 1 ...
- C++之程序时间统计类实现
/********** TimeCounter.h huangsy13@gmail.com **********/ #ifndef TIMECOUNTER #define TIMECOUNTER #i ...
- Batch Normalization原理及其TensorFlow实现——为了减少深度神经网络中的internal covariate shift,论文中提出了Batch Normalization算法,首先是对”每一层“的输入做一个Batch Normalization 变换
批标准化(Bactch Normalization,BN)是为了克服神经网络加深导致难以训练而诞生的,随着神经网络深度加深,训练起来就会越来越困难,收敛速度回很慢,常常会导致梯度弥散问题(Vanish ...
- windows 解压缩命令
首先安装winrar 压缩: 命令:start winrar a test test.py 解压: 命令:start winrar x -y test.rar F:\batShell\test\tes ...
- ffmpeg 源码分析
http://blog.csdn.net/liuhongxiangm/article/details/8824761 https://code.google.com/p/ffmpegsource/is ...
- JMeter使用记录2 -- Web測试
Web測试用例 新建线程组.配置起3线程,循环1次.1秒启动全部线程.进行login.循环1个主要页面的读写,并对另外一个主要页面进行读操作,最后logout并在aggregate graph/gra ...
- UI设计要学哪些软件
准备做UI设计的或是已经在做UI设计的童鞋,哪些软件是我们要学习的重点,作者把UI设计分成了好几个不同的职业方向,从事什么UI设计方向,就学什么软件,这样针对性就很强了,无论怎么说,Photoshop ...
- 帝国CMS当前位置中的“首页”二字如何修改
1.帝国CMS当前位置首页那两个字在哪里可以修改吗? 2.[!--newsnav--]该处的首页链接,请问在哪儿修改? 3.导航条[!--newsnav--]默认首页为:“首页”可以更改么? 4.导航 ...
- mybatis由浅入深day02_8spring和mybatis整合
8 spring和mybatis整合 8.1 整合思路 需要spring通过单例方式管理SqlSessionFactory.mapper接口. spring和mybatis整合生成代理对象,使用Sql ...