码迷,mamicode.com
首页 > 数据库 > 详细

PostgreSQL-6-数据分组

时间:2019-04-05 18:06:32      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:gre   avg   报错   count   ble   student   where   条件过滤   均值   

基本语法

SELECT column-list FROM table_name

WHERE [ conditions ]

GROUP BY column1, column2

HAVING [ conditions ]

ORDER BY column1, column2

注意顺序 → WHERE - GROUP BY - HAVING - ORDER BY

 

SELECT classno,COUNT(studentname) FROM student GROUP BY classno;  按照classno字段,分组汇总学生数量

SELECT classno,MIN(age),AVG(age) FROM student GROUP BY classno;  查看每个班级年龄最小值/均值

INSERT INTO company3 VALUES(7,‘pual‘,2000);

INSERT INTO company3 VALUES(8,‘allen‘,3000);

INSERT INTO company3 VALUES(9,‘teddy‘,20000);

SELECT name,SUM(salary) FROM company3 GROUP BY name;  多插入一些重复名称的数据,汇总每个员工的总薪水

 

分组+排序

SELECT classno,COUNT(studentname) FROM student GROUP BY classno ORDER BY classno; 按照classno排序

SELECT name,SUM(salary) FROM company3 GROUP BY name ORDER BY SUM(salary);  按照总薪水排序

 

过滤分组,WHERE

SELECT classno,COUNT(studentname) FROM student

       WHERE classno > 2

       GROUP BY classno; WHERE作用与分组前,这里先筛选classno>2的数据,再分组

       注意,这里如果书写:WHERE COUNT(studentname) > 1 就会报错

 

过滤分组,HAVING

SELECT classno,COUNT(studentname) FROM student

       GROUP BY classno

       HAVING COUNT(studentname) > 1; HAVING主要用于过滤分组,且是在分组后进行过滤

       所以一般对于分组的条件过滤,都用HAVING

PostgreSQL-6-数据分组

标签:gre   avg   报错   count   ble   student   where   条件过滤   均值   

原文地址:https://www.cnblogs.com/swefii/p/10659306.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!