![7bb998b175b743055b5c9fd1900ebd99.png](https://i-blog.csdnimg.cn/blog_migrate/b2714d16a4223baf0d17141c2e07cb53.jpeg)
葛大娘
分享数据分析小技能
都是大白话儿
讲实干,不装X
■ 案例数据表 ■
先看一下案例数据表,如表1所示,为“大娘菜店销售表”,表名“sales”。
示例1
要求: 从蔬菜销售表查询全部销售额select sales_amountfrom sales;
要点:
单字段查询
说明
:查询某一列(字段)的全部值,把要查询的列名称放在select后面。
结果:
![0dcaefec684c1a3543cfb5850f7f0f34.png](https://i-blog.csdnimg.cn/blog_migrate/d168d2e27d3454d656f9a4576d1c8483.png)
示例2
要求:从蔬菜销售表查询全部销售额、日期select cdate,sales_amountfrom sales;
要点:多字段查询
说明:查询多列(字段)的全部值,按照你想要展示的列的顺序,放在select后面,用逗号隔开。
结果:
![af7aa6b14e8822663cf8a03899e4b853.png](https://i-blog.csdnimg.cn/blog_migrate/3cf8af65e9770bd6928e16e9bf40af9a.png)
示例3
要求:从蔬菜销售表查询001号顾客销售额select sales_amountfrom saleswhere cid=001;
要点:条件查询
说明:查询符合某些条件的记录,用where加条件,置于from语句后面。
结果:
![9f760b6411fd814faff3fc368809bc51.png](https://i-blog.csdnimg.cn/blog_migrate/b4a185d2217353223ef0919d2fd59e0a.png)
示例4
要求:从蔬菜表按照由大到小查询001号顾客销售额select sales_amountfrom saleswhere cid=001order by sales_amount desc;
要点:排序
说明:使用order by 语句对查询记录进行排序,要排序的字段放在by后面,整体排序语句放在where条件语句后面。降序排列加desc,升序排列加asc,默认为升序。
结果:
![67c6886356afaaef6d26525a6b59ddcb.png](https://i-blog.csdnimg.cn/blog_migrate/0c04ab26f57a0ee2b538df7ab6a27bbc.png)
示例5
要求:从蔬菜表查询001号顾客最大销售金额select sales_amountfrom saleswhere cid=001order by sales_amount desclimit 1;
要点:限定记录条数/分页/最大最小值
说明:排序加限定方式获取最大/最小值,排序后用limit限定,获得最大值。还有函数方法,见后面函数实例。limit m,n从第m行记录开始,选取n条记录。本例中省略了m=0。
结果:
![ea6b565998ed4d60230b3f918a62ba96.png](https://i-blog.csdnimg.cn/blog_migrate/9aa05fe9c29e0cdccbe8c48f8b0e3164.png)
示例6
要求:从蔬菜表查询001号顾客最大销售金额select max(sales_amount) as max_safrom saleswhere cid=001;
要点:聚合函数
说明:常用的sum、avg 、max、min、count等,函数名(字段)。给选取的字段起个新名字显示。
结果:
![3c5ba377a97a92aa4ae0fb2d27a76e0b.png](https://i-blog.csdnimg.cn/blog_migrate/595dc214d8c46bb397109410ddc14ff2.png)
示例7
要求:从蔬菜表查询各个顾客销售金额总和select cid,sum(sales_amount)from salesgroup by cid;
要点:分组
说明:有点儿类似分类汇总,即001号顾客一共买了多少,002号顾客一共买了多少。使用group by 加字段,注意这个字段需要也写在select后面,不然会出错。
结果:
![d9b05b6003be975ab337c359cc7a5a3b.png](https://i-blog.csdnimg.cn/blog_migrate/d334a838874717ee77786f7b75e86756.png)
示例8
要求:从蔬菜表查询销售记录大于2条的记录select cid,sum(sales_amount)from salesgroup by cidhaving count(*)>2;
要点:分组条件
说明:group by 后面加条件不能使用where,要使用having。count (*)计算分组后各个类别行数,也就是记录数。
结果:
![f9321c37e213583aafbf3c346f42e78f.png](https://i-blog.csdnimg.cn/blog_migrate/de76aef023bdf7f92098c80381a81089.png)
示例9
要求:从蔬菜表查询2020年12月1日销售记录不小于2条的记录select cid,sum(sales_amount)from saleswhere udate="2020-12-01"group by cidhaving count(*)>=2;
要点:限定条件+分组条件
说明:上个实例说group by 后面不能加where,不是两者不能在一个语句中,本例就是限定其它条件,分组是另一条件。
结果:
![a000738570c9471ed42e9a21d0aeec01.png](https://i-blog.csdnimg.cn/blog_migrate/83029220c27a8419635637d10b4a03fe.png)