group by

select * from TblStudent
--1.请从学生表中查询出每个班的班级id和班级人数
select
tsclassId as 班级id,
班级人数=count(*)
from TblStudent
group by tsclassId
--请统计出,所有学生中男同学和女同学的人数分别是多少
select
tsGender as 性别,
人数=count(*)
from TblStudent
group by tsGender --2.请从学生表中查询出每个班的班级id和班级中男同学的人数
select
tsclassId as 班级id,
男同学人数=count(*)
from TblStudent
where tsGender='男'
group by tsclassId
--------------------------------------------------
--当使用了分组函数group by或者是聚合函数的时候,在select的查询列表中不能再包括其他的列名,除非该列同时也出现在了group by子句中,或者该列也包含在了某个聚合函数中
select
sum(tsage),
性别=tsGender,
人数=count(*)
from TblStudent
group by tsGender

having

----对分组以后的数据进行筛选:使用having
--having和where都是对数据进行筛选,where是对分组前的每一行数据进行筛选,而having是对分组后的每一组数据进行筛选
select
tsclassId as 班级id,
班级人数=count(*)
from TblStudent
group by tsclassId
having count(*)>10

SELECT 语句的处理顺序

以下步骤显示SELECT语句的处理顺序。

1、FROM

2、ON

3、JOIN

4、WHERE

5、GROUP BY

6、with cube 或with rollup

7、HAVING

8、SELECT    8-1>选择列     8-2>distinct    8-3>top(应用top选项最后计算)

10、ORDER By

11、TOP

----------------------练习--------------------------
select * from MyOrders
--1.热销售商品排名表【即按照每种商品的总销售数量排序】
select
商品名称,
销售数量=sum(销售数量)
from MyOrders
group by 商品名称
order by 销售数量 desc --2.请统计销售总价超过3000元的商品名称和销售总价,并按销售总价降序排序。
select
商品名称,
销售总价=sum(销售数量)*销售价格
from MyOrders
group by 商品名称
having sum(销售数量)*销售价格>3000
order by 销售总价 desc --3.统计各个客户对“可口可乐”的喜爱度(既统计每个购买人对“可口可乐”的购买量)
select
购买人,
可口可乐购买量=sum(销售数量)
from MyOrders
where 商品名称='可口可乐'
group by 购买人
order by 可口可乐购买量 desc

注意:可以按照多列来排序,也可以按照多列来分组(即先按照一列来分组,再按照一组再进行分组)

27-1 分组-having的更多相关文章

  1. iOS常用方法

    1.磁盘总空间大小 + (CGFloat)diskOfAllSizeMBytes {     CGFloat size = 0.0;     NSError *error;     NSDiction ...

  2. iOS常用公共方法

      iOS常用公共方法 字数2917 阅读3070 评论45 喜欢236 1. 获取磁盘总空间大小 //磁盘总空间 + (CGFloat)diskOfAllSizeMBytes{ CGFloat si ...

  3. iOS 常用公共方法

    iOS常用公共方法 1. 获取磁盘总空间大小 //磁盘总空间 + (CGFloat)diskOfAllSizeMBytes{ CGFloat size = 0.0; NSError *error; N ...

  4. 关于iOS常用的26中公共方法,可copy的代码

    1. 获取磁盘总空间大小 //磁盘总空间 + (CGFloat)diskOfAllSizeMBytes{ CGFloat size = 0.0; NSError *error; NSDictionar ...

  5. SQL语句中的select高级用法

    #转载请联系 为了更好的了解下面的知识点,我们先创建两张表并插入数据. # 学生表 +----+-----------+------+--------+--------+--------+------ ...

  6. python正则-- re模块

    匹配数字相关'.' 默认匹配除\n之外的任意一个字符,若指定flag DOTALL,则匹配任意字符,包括换行'^' 匹配字符开头,若指定flags MULTILINE,这种也可以匹配上(r" ...

  7. 自学_数据库<三>

    数据库 数据库概述 DBMS(DataBase Management System,数据库管理系统)和数据库.平时谈到"数据库"可能有两种含义:MSSQLServer.Oracle ...

  8. Java_lambda表达式之"stream流学习,Map学习,collect学习,Conllectors工具类学习"

    Lambda表达式学习 对List<Integer> userIdList = UserList.stream().map(User::getUserId).collect(Collect ...

  9. 扩展GridView控件——为内容项添加拖放及分组功能

    引言 相信大家对GridView都不陌生,是非常有用的控件,用于平铺有序的显示多个内容项.打开任何WinRT应用或者是微软合作商的网站,都会在APP中发现GridView的使用.“Tiles”提供了一 ...

  10. Mysql 数据分组取某字段值所有最大的记录行

    需求: 表中同一个uid(用户)拥有多条游戏等级记录,现需要取所有用户最高等级(level)的那一条数据,且时间(time)越早排越前.这是典型的排名表 +------+-------+------- ...

随机推荐

  1. UVALive 7505 Hungry Game of Ants

    1. 笔记 比较容易的动态规划题.往左很好考虑,往右用dpi表示前i只都被k吃掉后,k继续往右仍然不死的情况数.状态转移方程为dp[I]=dp[I+1]+...+dp[j],分别对应第I+1位向左,. ...

  2. 微信Webapp开发的各种变态路由需求及解决办法!

    前言 最近在使用BUI Webapp开发的一个小商城项目在微信上遇到一些坑及变态需求, 层层深入, 整理一下给后来人参考. 一定有你还不知道的! 调试缓存 问题描述: 微信打开的web页面默认是会缓存 ...

  3. canvas 绘图api的位置问题

    很久没碰canvas了,今天因为canvas绘图的为之问题浪费了一些时间. 我们知道canvas的默认宽高是300X150嘛. 实际使用的时候当然是自定义一个高宽啦. 通常我们会习惯性地在js中通过c ...

  4. 一个简易的SocketIM

    今天做了一个简易的socketIM的小示例.基本思想是开启两个winform,每个winform既充当服务器也充当客户端.一个监听8000端口,另外一个监听8001端口,两个winform接收到信息之 ...

  5. Github作为Maven仓库

    新建发布构件项目 新建一个普通的maven项目,坐标为 创建一个类: 接着在pom文件中添加: <distributionManagement> <repository> &l ...

  6. 带权并查集--hdu3047 ZJnu stadium

    题意:给出一个n,m,n表示的是有n 个人,m表示的是 有m 对关系: 接下来输入的就是这m对关系,a,b,x:表示的是a,b相距x个距离:然后判断输入的是否与这个数的上面的数信息一致, 输出不一致的 ...

  7. CF #636 (Div. 3) 对应题号CF1343

    unrated 选手悠闲做题,然后只做出四个滚蛋了 符合 div3 一贯风格,没啥难算法 E最后就要调出来了,但还是赛后才A的 CF1343A Candies 传送门 找到一个 \(x\),使得存在一 ...

  8. python(json 模块)

    1.Json 定义 定义:JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式.JSON 的数据格式其实就是 python 里面的字典格式,里 ...

  9. ubuntu 使用 vsftpd 基于系统用户配置相互隔离的 ftp (ftps) 服务

    我们在日常使用 UbuntuServer 服务器时,经常会直接使用基于 ssh 的  sftp 连接服务器直接进行文件上传和下载,不过这个方式其实有一定的安全隐患,当一个团队有多个人员,需要连接服务器 ...

  10. c/c++获取文件夹下所有文件名

    如何获取某一文件夹下所有文件名,是一个很有意思的问题.网上代码很多,找了个简单的,特此收录. #include <iostream> #include <io.h> #incl ...