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)越早排越前.这是典型的排名表 +------+-------+------- ...
随机推荐
- Ubuntu登陆时忘记密码怎么办
有时候由于各种原因,用户会忘记自己登陆Ubuntu的登陆密码,这个时候我们能怎么办呢? 第一步:先重启电脑,开机时长按shift键,进入grub菜单: 第二步:按“e”键编辑启动项,显示如下图,将下图 ...
- Django入门2:路由系统
1.单一路由对应 url(r'^index/', views.index), # FBV url(r'^home/', views.Home.as_view()), # CBV 2.基于正则的路由 u ...
- Autofac的切面编程实现
*:first-child { margin-top: 0 !important; } .markdown-body>*:last-child { margin-bottom: 0 !impor ...
- 通过express框架为前端提供api(数据),妈妈再也不用担心后端不给我数据了~
个人网站 https://iiter.cn 程序员导航站 开业啦,欢迎各位观众姥爷赏脸参观,如有意见或建议希望能够不吝赐教! 首先,确保自己安装了express框架. 没有安装的同学可以参照下面这篇博 ...
- Codeforce 1255 Round #601 (Div. 2)D. Feeding Chicken (模拟)
Long is a huge fan of CFC (Codeforces Fried Chicken). But the price of CFC is increasing, so he deci ...
- Java自动装箱与缓存
自动装箱与缓存 现象 有以下代码: 1 public class Main { 2 public static void main(String[] args) { 3 Integer i1 = 12 ...
- pycharm(py 文件中添加作者、时间)
1.打开 Pycharm,点击 File,再找到 Settings... 2.选择 Editor ----> File and Code Templates ----> Python Sc ...
- IP 基础知识全家桶,45 张图一套带走
前言 前段时间,有读者希望我写一篇关于 IP 分类地址.子网划分等的文章,他反馈常常混淆,摸不着头脑. 那么,说来就来!而且要盘就盘全一点,顺便挑战下小林的图解功力,所以就来个 IP 基础知识全家桶. ...
- 【Java8新特性】还没搞懂函数式接口?赶快过来看看吧!
写在前面 Java8中内置了一些在开发中常用的函数式接口,极大的提高了我们的开发效率.那么,问题来了,你知道都有哪些函数式接口吗? 函数式接口总览 这里,我使用表格的形式来简单说明下Java8中提供的 ...
- Spring官网阅读(十七)Spring中的数据校验
文章目录 Java中的数据校验 Bean Validation(JSR 380) 使用示例 Spring对Bean Validation的支持 Spring中的Validator 接口定义 UML类图 ...