zoukankan      html  css  js  c++  java
  • SQL语句(十二)分组查询

    (十二)分组查询

    • 将数据表中的数据按某种条件分成组,按组显示统计信息

    • 查询各班学生的最大年龄、最小年龄、平均年龄和人数

    • 分组

      SELECT <字段名表1> FROM <表名> -- 这里字段名表1 应该 是 按照字段名表2 分组以后 能够产生唯一值的 字段(如:班级)

      [WHERE <条件> ]

      GROUP BY <字段名表2>

      [HAVING <条件> ]

      [ORDER BY <字段名列表3> ]

    --例1 查询各班学生的最大年龄、最小年龄、平均年龄和人数
    -- 将多余空格删去
    UPDATE Student
    SET Sdept = ltrim(sdept)
    
    Select ltrim(Sdept) AS 系别, MAX(Sage) AS 最大, MIN(Sage) AS 最小,
    AVG(Sage) AS 平均, COUNT(*) AS 人数
    FROM Student
    GROUP BY ltrim(Sdept)
    ORDER BY 平均 DESC
    
    --例2 查询各班学生的最大年龄、最小年龄、平均年龄和人数
    --并且按平均年龄降序排列
    --见上
    
    --例3 查询各系别男生和女生人数
    SELECT Sdept, Ssex, COUNT(*) AS 人数
    FROM Student
    GROUP BY Sdept, Ssex  --通过系别,男女分组
    ORDER BY Sdept
    
    --例4 查询各系别姓张的学生的人数
    SELECT Sdept, Count(*) AS 张姓人数 
    FROM Student
    WHERE Sname LIKE '张%'
    GROUP BY Sdept
    
    --例5 查询姓"张"的学生人数等于1的班级 及 姓张的人数
    SELECT Sdept, Count(*) AS Douzi  
    FROM Student
    WHERE Sname LIKE '张%'
    GROUP BY Sdept
    Having COUNT(*) = 1
    
    --例6 查询各系别同学来自不同的省份人数,按班级排序
    Select Sdept, Province, Count(*)
    from Student
    GROUP BY Sdept, Province
    ORDER BY Sdept
    --(5)创建每个学生所选课程的学号和平均分,并按平均分排序的视图ST1。
    GO
    create View ST1(Sno, AVGE)
    AS
    Select Top 100 percent Sno, AVG(Grade) AS AVGE
    From SC
    Group by Sno
    Order by AVG(Grade) asc
  • 相关阅读:
    Yii1.1应用升级到Yii2.0的一些注意点
    js经常使用功能代码
    P3370 【模板】字符串哈希
    poj 2406 Power Strings 周期问题
    P1325 雷达安装
    P1809 过河问题_NOI导刊2011提高(01)
    P1791 线段覆盖
    田忌赛马
    1225 八数码难题
    P1115 最大子段和
  • 原文地址:https://www.cnblogs.com/douzujun/p/6590610.html
Copyright © 2011-2022 走看看