加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

PostgreSQL-6-数据分组

发布时间:2020-12-13 16:09:29 所属栏目:百科 来源:网络整理
导读:基本语法 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 GROU

基本语法

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读