第三章 聚合与排序

-- 第三章:聚合与排序
-- 3-1
SELECT COUNT()
FROM Product;
-- 3-1
SELECT COUNT(purchase_price)
FROM Product;
-- 将包含NULL的列作为参数时,COUNT(
)和COUNT(<列名>)的结果并不相同 整表()时是具体行数,而单独列的时候是null带来的0
-- 其他聚合函数同理,会把NULL排除在外,但是COUNT(
)除外,并不会排除NULL
SELECT SUM(sale_price), AVG(sale_price), MAX(regist_date), MIN(regist_date)
FROM Product;
-- PS:MAX/MIN适用于所有数据类型的列,SUM/AVG函数只适用于数值类型的列
-- 使用聚合函数删除重复值DISTINCT
SELECT COUNT(DISTINCT product_type)
FROM Product;

-- 3-2对表进行分组
-- GROUP BY子句,就相当于在第一列对后面所有数据进行了分组,以及注意顺序,group by在where后面/NULL会单独作为一类分类
SELECT purchase_price, COUNT(*)
FROM product
WHERE product_type = '衣服'
GROUP BY purchase_price;

-- 易错情况,把除了聚合列也就是group by的列之外的列也放在,select里面,这样select就不知道改如何选取了,不然就在聚合函数内使用,不然就是常数
-- 易错情况2,也不能使用别名,也就是as在select语句中,在group by的情况下
-- 易错情况3,group BY的结果是随机的,不能排序;在where子句中不能使用聚合函数
-- 只有SELECT//HABING//ORDER BY//能够使用聚合函数
-- 想要删除选择结果中的重复数据时,用DISTINCT//想要计算汇总重复结果的值的时候用group BY

-- 3-3为聚合结果指定条件
-- HAVING必须在group by后面
SELECT product_type, AVG(purchase_price)
FROM Product
GROUP BY product_type
Having AVG(sale_price) > 2500;
-- 聚合键所对应的条件写在where中比having中更好,具有更加明确的限定意义,类似于副词形容聚合键,而后面都是挑选范围,针对后续数据的内容用having

-- 3-4对查询结果进行排序
-- ORDER BY写在最后//ASC表示升序 sql默认升序//DESC表示降序//可以一列升序,剩下的降序//排序的时候 先写的先排//允许使用as的别名,而不是as本身
SELECT product_id, product_name, sale_price, purchase_price
FROM Product
ORDER BY purchase_price, sale_price;
-- 记住select的执行顺序是group by之后,order by之前//可以使用聚合函数//count(*)
-- 可以用列的编号在order by里面使用,如 ORDER BY 3 DESC表示对第三列降序排列,但是不建议使用,因为一次性无法保存,读起来不知所云

-- 练习题
-- 3.1 顺序不对
-- 3.2 ???
SELECT product_type, SUM(sale_price), SUM(purchase_price)
FROM Product
GROUP BY product_type
HAVING SUM(sale_price) >= SUM(purchase_price) * 1.5;
-- 3.3
SELECT *
FROM Product
ORDER BY regist_date DESC, sale_price;

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

推荐阅读更多精彩内容

  • rljs by sennchi Timeline of History Part One The Cognitiv...
    sennchi阅读 7,319评论 0 10
  • MYSQL 基础知识 1 MySQL数据库概要 2 简单MySQL环境 3 数据的存储和获取 4 MySQL基本操...
    Kingtester阅读 7,796评论 5 116
  • By clicking to agree to this Schedule 2, which is hereby ...
    qaz0622阅读 1,442评论 0 2
  • 一、SQL速成 结构查询语言(SQL)是用于查询关系数据库的标准语言,它包括若干关键字和一致的语法,便于数据库元件...
    shadow雨轩阅读 513评论 0 3
  • 有人的地方就有江湖 来到steemit有两个月,发现自己除了一点steempower并没有其他收获,这让我实在有点...
    0946a9399b35阅读 495评论 10 3