27-1 分组-having
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的更多相关文章
- iOS常用方法
1.磁盘总空间大小 + (CGFloat)diskOfAllSizeMBytes { CGFloat size = 0.0; NSError *error; NSDiction ...
- iOS常用公共方法
iOS常用公共方法 字数2917 阅读3070 评论45 喜欢236 1. 获取磁盘总空间大小 //磁盘总空间 + (CGFloat)diskOfAllSizeMBytes{ CGFloat si ...
- iOS 常用公共方法
iOS常用公共方法 1. 获取磁盘总空间大小 //磁盘总空间 + (CGFloat)diskOfAllSizeMBytes{ CGFloat size = 0.0; NSError *error; N ...
- 关于iOS常用的26中公共方法,可copy的代码
1. 获取磁盘总空间大小 //磁盘总空间 + (CGFloat)diskOfAllSizeMBytes{ CGFloat size = 0.0; NSError *error; NSDictionar ...
- SQL语句中的select高级用法
#转载请联系 为了更好的了解下面的知识点,我们先创建两张表并插入数据. # 学生表 +----+-----------+------+--------+--------+--------+------ ...
- python正则-- re模块
匹配数字相关'.' 默认匹配除\n之外的任意一个字符,若指定flag DOTALL,则匹配任意字符,包括换行'^' 匹配字符开头,若指定flags MULTILINE,这种也可以匹配上(r" ...
- 自学_数据库<三>
数据库 数据库概述 DBMS(DataBase Management System,数据库管理系统)和数据库.平时谈到"数据库"可能有两种含义:MSSQLServer.Oracle ...
- Java_lambda表达式之"stream流学习,Map学习,collect学习,Conllectors工具类学习"
Lambda表达式学习 对List<Integer> userIdList = UserList.stream().map(User::getUserId).collect(Collect ...
- 扩展GridView控件——为内容项添加拖放及分组功能
引言 相信大家对GridView都不陌生,是非常有用的控件,用于平铺有序的显示多个内容项.打开任何WinRT应用或者是微软合作商的网站,都会在APP中发现GridView的使用.“Tiles”提供了一 ...
- Mysql 数据分组取某字段值所有最大的记录行
需求: 表中同一个uid(用户)拥有多条游戏等级记录,现需要取所有用户最高等级(level)的那一条数据,且时间(time)越早排越前.这是典型的排名表 +------+-------+------- ...
随机推荐
- KVM 一键批量创建虚拟机
目录 一.原理 二.基础镜像 2.1.创建基础镜像 2.2. 完善基础镜像 2.3.基础镜像设置权限 3.4 设置 title 3.5.基础镜像XML 三.批量创建机器脚本 四.挂载磁盘多种方式 4. ...
- jQuery动态时钟
效果图: 引用的jQuery.js自己百度 代码: <!DOCTYPE html> <html> <head> <meta charset="utf ...
- apache、nginx配置openssl自签名证书
1.生成私钥 生成rsa私钥,des3算法,2048位强度.server.key是秘钥文件名,需要提供一个至少4位的密码. [root@localhost ~]# openssl genrsa -de ...
- Shiro(三):Spring-boot如何集成Shiro(下)
上一篇文章介绍了shiro在spring-boot中通过filter实现authentication流程(通过设置filterMaps也可以达到authorization的目的):这篇文章主要介绍sp ...
- CodeForces - 1058D D. Vasya and Triangle
D. Vasya and Triangle time limit per test1 second memory limit per test256 megabytes inputstandard i ...
- Java 四种权限修饰符
Java 四种权限修饰符访问权限 public protected (default) private 同一个类(我自己) yes yes yes yes 同一包(我邻居) yes yes yes n ...
- C#黔驴技巧之去重(Distinct)
前言 关于C#中默认的Distinct方法在什么情况下才能去重,这个就不用我再多讲,针对集合对象去重默认实现将不再满足,于是乎我们需要自定义实现来解决这个问题,接下来我们详细讲解几种常见去重方案,孰好 ...
- 【Hadoop离线基础总结】Hue与Hive集成
目录 1.更改hue的配置hue.ini 2.启动hive的metastore以及hiveserver2服务 3.启动hue进程,查看Hive是否与Hue集成成功 1.更改hue的配置hue.ini ...
- 【Hadoop离线基础总结】zookeeper的介绍以及集群环境搭建、网络编程和RPC的简单了解
ZooKeeper的介绍以及集群环境搭建.网络编程和RPC的简单了解 ZooKeeper介绍 概述 ZooKeeper是一个分布式协调服务的开源框架,主要用来解决分布式集群中应用系统的一致性问题.例如 ...
- python语法学习第九天--else和with语句
else: while/for else:正常执行完循环(非break)执行else中代码 try else:未捕捉到异常,执行else中代码 with: 语法格式: with open('666.t ...