数据分析 NO.5 《MYSQL必知必会》12-17章

《MYSQL必知必会》12-17章在这里插入图片描述
AVG()只能用来确定特定数值列的平均值,而且列名必须作为函数参数给出。为了获得多个列的平均值,必须使用多个AVG()函数。

COUNT()
使用COUNT(*)对表中行的数目进行计数,不管表列中包含的是空值(NULL)还是非空值。
使用COUNT(column)对特定列中具有值的行进行计数,忽略NULL值。

MAX()
在用于文本数据时,如果数据按相应的列排序,则MAX()返回最后一行。

才采用distinct中,不允许使用count(distinct *)!!!DISTINCT必须使用列名

GROUP BY ()
使用WITH ROLLUP关键字,可以得到每个分组以及每个分组汇总级别(针对每个分组)的值 (个人觉得没有意义)

SELECT 初始评级,COUNT(*) 
FROM 拍拍贷.LC
GROUP BY 初始评级 WITH ROLLUP

返回结果如下:
在这里插入图片描述
对分组过滤 用HAVING
WHERE在数据分组前进行过滤,HAVING在数据分组后进行过滤。这是一个重要的区别,WHERE排除的行不包括在分组中。这可能会改变计算值,从而影响HAVING子句中基于这些值过滤掉的分组。

在这里插入图片描述

子查询:
列必须匹配 在WHERE子句中使用子查询(如这里所示),应该保证SELECT语句具有与WHERE子句中相同数目的列。通常,
子查询将返回单个列并且与单个列匹配,但如果需要也可以使用多个列。

相关子查询(correlated subquery) 涉及外部查询的子查询。

联结:
可伸缩性(scale) 能够适应不断增加的工作量而不失败。设计良好的数据库或应用程序称之为可伸缩性好(scale well)。

SELECT vend_name,prod_name ,prod_price
FROM vendors,products
WHERE vendors.id=products.id
order by  vend_name,prod_name 

笛卡儿积(cartesian product) 由没有联结条件的表关系返回的结果为笛卡儿积。检索出的行的数目将是第一个表中的行数乘
以第二个表中的行数。

自连接

SELECT p1.prod_id,p1.prod_namr
FROM products p1, products p2
where p1.venid=p2.venid and p2.prod_id="wrong"

join(),left join(),right join()

UNION
在这里插入图片描述
UNION规则:
1.UNION必须由两条或两条以上的SELECT语句组成,语句之间用关键字UNION分隔(因此,如果组合4条SELECT语句,将要使用3个UNION关键字)。
2.UNION中的每个查询必须包含相同的列、表达式或聚集函数(不过各个列不需要以相同的次序列出)。
3. 列数据类型必须兼容:类型不必完全相同,但必须是DBMS可以隐含地转换的类型(例如,不同的数值类型或不同的日期类型)。

使用 UNION ALL 则不取消重复的行。

在用UNION组合查询时,只能使用一条ORDER BY子句,它必须出现在最后一条SELECT语句之后。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值