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 ...
随机推荐
- 【转】【MySql】Update批量更新与批量更新多条记录的不同值实现方法
批量更新 mysql更新语句很简单,更新一条数据的某个字段,一般这样写: UPDATE mytable SET myfield = 'value' WHERE other_field = 'other ...
- Java 关于finally、static
论坛上看到的两道题目,如下: //为啥运行结果是1 0 不是 0 0呢 谁能解释下啊 public class FinallyDemo { static int value = 0; static i ...
- : error C3861: “Sleep”: 找不到标识符
编译的时候:error C3861: “sleep”: 找不到标识符,是什么原因啊?编译的时候:error C3861: “sleep”: 找不到标识符,是什么原因啊?哪位好心的哥哥告诉我吧,分全是你 ...
- Unity中坐标系转换方法
前言 本篇文章主要是参考<Unity API 解析>---陈泉宏. 这是本人在学校图书馆找到一本书,主要介绍的就是常用的类,比较实用,没有冗余的地方.在此推荐一下这本书! 一.Screen ...
- 10个开发中常用的PHP代码样例
一.黑名单过滤 function is_spam($text, $file, $split = ':', $regex = false){ $handle = fopen($file, 'rb'); ...
- db2 over()
说起 DB2 在线分析处理,可以用很好很强大来形容.这项功能特别适用于各种统计查询,这些查询用通常的SQL很难实现,或者根本就无发实现.首先,我们从一个简单的例子开始,来一步一步揭开它神秘的面纱,请看 ...
- 基于Nginx反向代理及负载均衡
基于Nginx反向代理及负载均衡 参考:http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_pass 只要没有被启用,默认就是 ...
- 使用jquery.uploadify动态传递自己的参数
上传碰到这个问题在上传文件的时候同时上传文件的类型..上网找了半天.总于解决了..分享一下了..直接例子了.. html <%@ page language="java" i ...
- DeDeCMS织梦的采集教程
http://www.tuicool.com/articles/VziaEz dede 第一步.我们打开织梦后台点击采集——采集节点管理——增加新节点 第二步.新增节点-配置网址索引 填写要采集 ...
- 帝国CMS 列表模板list.var支持程序代码
1.增加模板时list.var模板需要勾选“使用程序代码”选项.如图: 2.直接添加PHP代码,不需要加<?和?>程序开始和结束标记. 3.字段值数组变量为$r,对应的字段变量为$r[字段 ...