• PostgreSQL-6-数据分组


    基本语法

    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

  • 相关阅读:
    Ubuntu下安装、激活并配置Pycharm
    高分辨率下firefox字体和界面自动放大的问题
    Java如何根据IP获取当前定位
    WebSocket介绍和一个简单的聊天室
    java注解处理
    TCP/IP协议三次握手与四次握手流程解析
    mybatis如何做分页处理
    xshell学习笔记
    正交表生成工具 PICT 成对组合覆盖 收藏
    Ready api groovy script 参数化
  • 原文地址:https://www.cnblogs.com/swefii/p/10659306.html
Copyright © 2020-2023  润新知