SQL语言基础(3)

聚合函数

count统计 

count(字段)

求 select 返回的记录总数

查询学生总数

select count(*) from studnets;

count可以结合distinct使用,去重后的统计

查询一共有多少个班级 (把班级进行去重后进行统计)

select count(distinct class) from students;

查询女学生的数量

select count(*) from studnets where sex ='女';

MAX 最大值

max(字段名)

查询指定字段里的最大值

查询students中的最大年龄

select max(age) from students;

查询女学生最大年龄

select max(age) from studnets where sex '女';

查询1班最大年龄

select max(age) from students where class = '1班';

MIN 最小值

min(字段)

查询指定字段里的最小值

查询学生中最小年龄

select min(age)  from students;

查询学生中女生最小年龄

select min(age) from studnets where sex ='女';

查询学生中1班最小年龄

select min(age) from students where class ='1班';

sun 求和

sum(字段名)

指定字段的值求和

查询学生的年龄总和

select sum(age) from students;

查询女学生的年龄总和

select sum(age) from students where sex = '女';

查询1班学生的年龄总和

select sum(age) from students where class ='1班';

AVG(平均值)

age(字段)表示求此字段的平均值

查询班级中的平均年龄

select avg(age) from  studnets;

查询班级中女生的平均年龄

select avg(age) from students where sex = '女';

查询班级为1班的平均年龄

select avg(age) from students where class ='1班';

avg的字段中如果有null,null不做为分母计算平均值 (如果所查询的3个值,其中一个值为null,而只能算做两个值求平均值)

扩展练习

查询所有学生的最大年龄,最小年龄,平均年龄;

select max(age),min(age),avg(age) from students;

查询1班有多少个学生

select count(*) from sutdnets where class = '1班';

查询3班中年龄小于30岁的同学有多少

select count(*) from students where class ='3班' and age < '30';

数据分组 group by

group by 字段名

select 聚合函数 from 表名 where 表名 group by 字段 

group by 就是配合聚合函数使用的

分别查询男女同学的数量

select sex,count(*) from students group by sex;

查询各个年龄段的学生数量

select age,count(*) from students group age;

查询1班男生、女生的数量

select sex,count(*) from where class ='1班' students group by sex;

用数据分组的方法,统计各个班级学生总数,平均年龄,最大年龄,最小年龄

select class count(*),avg(age),max(age),min(age) from students group by class;

统计各个班级的学生总数,平均年龄、最大年龄、最小年龄、但不统计3班的学生,统计结果按班级从小到大排序

select class count(*),avg(age),max(age),min(age) from students where class !='3班' group by class order by class desc;

分组以后筛选

用where查询男生总数

select count(*) from studnets where sex ='男';

用having查询男生总数

select count(*) from students group by sex having sex ='男';

求班级人数大于3人的班级

select class, count(*) from students group by class having count(*)> 3;

Having与where筛选的区别

where是对标的原始数据进行筛选

having是对group by之后已经分过组的数据进行筛选

having可以使用聚合函数 where不能用聚合函数

查询班级总人数大于2人的班级名称以及班级对应的总人数

select class,count(*) from students group by class having count(*) > 2;

查询平均年龄大于30岁的班级名称和班级总人数

select class,count(*) from students group by class having ave(age) > 30;

limit 显示指定的记录数

select * from 表名 where 条件 group by 字段 order by 字段 limit start,count 

 语法:limit开始行,获取行数 

limit总是出现在select语句的最后

start代表开始行号,行号从0开始编号

count代表要显示多少行

省略start默认从0开始,从第一行开始

查询前3行学生记录

select * from students limit 0,3;

查询从第4条记录开始的三条记录

select * from studnets limit 3,3;

当有where或者group by或者order by,limit总是出现在最后

查询年龄最大同学的名字

select name from students order by age desc limt 0,1;

查询年龄最小女同学的信息

select * from students where sex = 女 order by age  limit 0,1;

limit 数据分页显示

当一张表记录特别多的时候,就需要用到分页显示

已知:每页显示m条数据,求查询第n页数据

公式 limit (n-1)*m,m

每页显示4条记录,第3页的结果  

select * from students limit 8,4;

每页显示4条记录,第2页的结果

select * form students limit 4,4;

已知每页也数,求一张表需要几页显示

    ♦求总页数

    ♦总页数/每页的记录数

    ♦如果结果是整数,那么就是总页数,如果结果有小数,那么就在结果的整数上+1

每页显示5条记录,分别多条select显示每页的记录

第一页  

select * from limit 5;

第二页   套用公式 (n-1)*m,m  m条数 n页数

select * from limit 5,5;

第三页

select  * from limit 10,5; 

第四页

select * from limit 15,5;

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,711评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,932评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,770评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,799评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,697评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,069评论 1 276
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,535评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,200评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,353评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,290评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,331评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,020评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,610评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,694评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,927评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,330评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,904评论 2 341

推荐阅读更多精彩内容