一.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的更多相关文章

  1. MySQL之单表查询 一 单表查询的语法 二 关键字的执行优先级(重点) 三 简单查询 四 WHERE约束 五 分组查询:GROUP BY 六 HAVING过滤 七 查询排序:ORDER BY 八 限制查询的记录数:LIMIT 九 使用正则表达式查询

    MySQL之单表查询 阅读目录 一 单表查询的语法 二 关键字的执行优先级(重点) 三 简单查询 四 WHERE约束 五 分组查询:GROUP BY 六 HAVING过滤 七 查询排序:ORDER B ...

  2. 第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;  ...

  3. 18 12 06 sql 的 基本语句 查询 条件查询 逻辑运算符 模糊查询 范围查询 排序 聚合函数 分组 分页 连接查询 自关联 子查询

    -- 数据的准备 -- 创建一个数据库 create database python_test charset=utf8; -- 使用一个数据库 use python_test; -- 显示使用的当前 ...

  4. MySQL—增删改查,分组,连表,limit,union,alter,排序,去重

    MySQL增删改查 在表格的增删改查中,查的内容是最多的,包括group by ,join,limit,union,alter,排序都是服务于查的 #sql语句数据行操作补充 #增加: #insert ...

  5. mysql概要(四)order by,group 的特点,子查询

    1.order by 默认按升序排列(asc/desc),多字段排序 order by 字段 排序方式,字段2 排序方式,..:在分组排序中,排序是对分组后的结局进行排序,而不是在组中进行排序. 2. ...

  6. linq中order by 和group by (含lambda表达式实现)以及综合案例

    一.Linq应用场景 linq的语法通过System.Linq下面的Enumerable类提供支持,也就是说,只要是实现了IEnumerable<T>的对象都可以使用Linq的语法来查询. ...

  7. ORDER BY,GROUP BY 和DI STI NCT 优化

    读<MySQL性能调优与架构设计>笔记之ORDER BY,GROUP BY 和DI STI NCT 优化 2015年01月18日 18:51:31 lihuayong 阅读数:2593 标 ...

  8. mysql-in关键字,分组查询,分页查询

    1. in关键字,组查询 # 使用or来查询的化,不方便而且参数一多比较傻 select * from users where id=1 or id=2 or id=4; select * from ...

  9. 【SQL】分组数据,过滤分组-group by , having

    学习笔记,原文来自http://blog.csdn.net/robinjwong/article/details/24845125 创建分组 - GROUP BY 分组是在SELECT语句的GROUP ...

随机推荐

  1. 【转】【MySql】Update批量更新与批量更新多条记录的不同值实现方法

    批量更新 mysql更新语句很简单,更新一条数据的某个字段,一般这样写: UPDATE mytable SET myfield = 'value' WHERE other_field = 'other ...

  2. Java 关于finally、static

    论坛上看到的两道题目,如下: //为啥运行结果是1 0 不是 0 0呢 谁能解释下啊 public class FinallyDemo { static int value = 0; static i ...

  3. : error C3861: “Sleep”: 找不到标识符

    编译的时候:error C3861: “sleep”: 找不到标识符,是什么原因啊?编译的时候:error C3861: “sleep”: 找不到标识符,是什么原因啊?哪位好心的哥哥告诉我吧,分全是你 ...

  4. Unity中坐标系转换方法

    前言 本篇文章主要是参考<Unity API 解析>---陈泉宏. 这是本人在学校图书馆找到一本书,主要介绍的就是常用的类,比较实用,没有冗余的地方.在此推荐一下这本书! 一.Screen ...

  5. 10个开发中常用的PHP代码样例

    一.黑名单过滤 function is_spam($text, $file, $split = ':', $regex = false){ $handle = fopen($file, 'rb'); ...

  6. db2 over()

    说起 DB2 在线分析处理,可以用很好很强大来形容.这项功能特别适用于各种统计查询,这些查询用通常的SQL很难实现,或者根本就无发实现.首先,我们从一个简单的例子开始,来一步一步揭开它神秘的面纱,请看 ...

  7. 基于Nginx反向代理及负载均衡

    基于Nginx反向代理及负载均衡 参考:http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_pass 只要没有被启用,默认就是 ...

  8. 使用jquery.uploadify动态传递自己的参数

    上传碰到这个问题在上传文件的时候同时上传文件的类型..上网找了半天.总于解决了..分享一下了..直接例子了.. html <%@ page language="java" i ...

  9. DeDeCMS织梦的采集教程

    http://www.tuicool.com/articles/VziaEz    dede 第一步.我们打开织梦后台点击采集——采集节点管理——增加新节点 第二步.新增节点-配置网址索引 填写要采集 ...

  10. 帝国CMS 列表模板list.var支持程序代码

    1.增加模板时list.var模板需要勾选“使用程序代码”选项.如图: 2.直接添加PHP代码,不需要加<?和?>程序开始和结束标记. 3.字段值数组变量为$r,对应的字段变量为$r[字段 ...