zoukankan      html  css  js  c++  java
  • sql复习-分组

    --数据分组-统计信息
    --查询每个班级的总人数
    select COUNT(8) from Student
    select ClassId, COUNT(*) from Student group by ClassId
    --得到男生,女生的总人数  group by按指定的字段进行分类
    select sex, COUNT(*) from Student group by sex
    
    --与聚合函数一起出现在查询中的其它列,只有两个可能性:被聚合,被分组,它往往就是被分组
    select sex, COUNT(*) from Student
    
    select distinct sex  from Student
    select COUNT(*) from Student
    
    select classid, COUNT(*) from Student
    select * from Student
    --顺序不能变 select(5) top/distinct 7 查询字段 from (1)表列表 where (2)对源数据进行筛选 group by(3) 分组统计字段列表 having (4)对分组统计结果集做筛选 order by (6)对最终的结果集做记录重排
    
    --where是对源数据做筛选的。它只能去使用from后面的表中所指定的列
    --聚合不应出现在 WHERE 子句中,就意味着聚合函数的条件不能通过where来指定
    --如果是对分组之后的结果集做筛选,那么就需要使用having
    --having的列是从group by中获取的
    --对分组统计结果集做筛选后再进行数据的显示。
    select ClassId, COUNT(*) num   from Student  group by ClassId  order by num desc
    
    select top 2 ClassId, COUNT(*) num   from Student  group by ClassId  order by num desc
    
    --1.查询每个班级的总学时数,并按照升序排列
    --2.查询每个参加考试的学员的平均分
    --3.查询每门课程的平均分,并按照降序排列
    --4.查询每个班级男女生的人数
    
    --当你看到类似于:各个,各自,每个,不同这些词的时候需要 考虑分组
    select ClassId, SUM(ClassHour) from Subject where ClassId is not null group by ClassId
    
    select StudentNo,AVG(StudentResult) from Result group by StudentNo
    
    select SubjectId,AVG(StudentResult) from Result group by SubjectId
    
    
    --查询每个班级男女生的人数
    select ClassId,sex, COUNT(*) from Student group by ClassId,sex order by ClassId,sex
  • 相关阅读:
    只用一个字节 计算象棋将帅之间可能的位置
    后缀数组学习
    java 构造不可变类集的使用方法
    topcoder SRM 639 div2
    navicat和pymysql
    表查询
    表的关系对应
    MySQl数据类型和条件限制
    复习之网络编程
    协程
  • 原文地址:https://www.cnblogs.com/junhuang/p/4111704.html
Copyright © 2011-2022 走看看