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 ...
随机推荐
- (四)Qt实现自定义模型基于QAbstractTableModel (一般)
Qt实现自定义模型基于QAbstractTableModel 两个例子 例子1代码 Main.cpp #include <QtGui> #include "currencymod ...
- 关于SQL语句的一些注意事项
1.Into 表后要编辑-IntelliSense-刷新本地缓存 才能访问新表 2.Is null不是=null
- ioc和aop的区别?
ioc:控制反转(Inversion of Control,英文缩写为IoC)把创建对象的权利交给框架,是框架的重要特征,并非面向对象编程的专用术语.它包括依赖注入(Dependency Inject ...
- CentOS命令top下你不一定懂的cpu显示信息
在使用top命令的时候会看到这么一行: 里面的各个值分别是什么意思呢? 今天被问到这个问题,发现答的不是很清楚.果然啊,天天用最多的top命令都还没摸透...惭愧...于是就查了些资料: 官方解释 C ...
- 未能在当前目标框架中解析主引用“System.Net.Http”,它是一个框架程序集。“.NETFramework,Version=v4.0”。若要解决此问题,请移除引用“System.Net.Http”,或将应用程序的目标重新指向包含“System.Net.Http”的框架版本。 Zephyr.Web
解决方法:升级项目到.net framework 4.5
- hadoop基础学习---基本概念
1.组成部分HDFS和MapReduce 2.HDFS这几架构
- jquery把int类型转换成字符串类型的方法
jQuery中把获取的number类型数据转换成字符串类型 var val=$(“#id).val(); If(typeof val==”number”){ val+=' '; }
- error C2065:!错误:未定义标识符“pBuf);”
error C2065: “pBuf):”: 未声明的标识符 错误原因:第二个括号)使用的是中文符号!还有最后那个分号! 改回来就好了~ 原错误: 修正后错误消失:
- c语言常用数据类型转换整理
你要发送原始数据流 还是 格式化输出? 如果是格式化 按原子说的 ,用sprintf / printf; 如果发送原始内存数据流, 可按下面发送, 发送 #define BYTE0(pointer) ...
- /var/log/cron
/var/log/cron 用来记录任务计划的运行日志,如下,分别表示: 任务运行的日期与时间 .在哪台主机上运行 .运行任务的程序[进程号] .任务运行的具体信息 [root@localhost ~ ...