zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    第五章 Mybatis注解
    第四章 Mbatis高级查询
    第三章 Mybatis动态Sql
    第二章 Mybatis映射文件
    第一章 初识Mybatis
    Mybatis大纲设计
    项目总结
    第二周项目功能实现
    第一周项目功能实现
    客车网上售票系统需求分析
  • 原文地址:https://www.cnblogs.com/swefii/p/10659306.html
Copyright © 2011-2022 走看看