可有可无的Mysql工作技巧 3 -- 工作中用到的理论范式,工具,建模经验

 2023-09-15 阅读 18 评论 0

摘要:摄影并不仅仅是对现实世界的还原,更多时候是可以被⽤作传递观点和表达意⻅的⼯具 聚合与分组聚合 聚合函数则属于多行函数,表中的多行记录会参与计算,并返回一个数值,且它通常用于分组的相关统计。 所有的聚合函数,如果是以列名作为 expr

摄影并不仅仅是对现实世界的还原,更多时候是可以被⽤作传递观点和表达意⻅的⼯具

聚合与分组聚合

聚合函数则属于多行函数,表中的多行记录会参与计算,并返回一个数值,且它通常用于分组的相关统计。

所有的聚合函数,如果是以列名作为 expr (例如这里的 salary ), MySQL 会在计算之前把列值是 NULL 的记录排除掉。这里需要理解,不能认为 “NULL 是 0” ,实际是列值为 NULL 的行不会计入分母

关于 COUNT 函数,总结如下:

另外,从输出中还可以得出结论, COUNT(n) 和 COUNT(*) 统计的总行数是包含 NULL 值的。这两种统计方式从本质上来说是一样的,而且并不存在哪一种效率更高的说法。这两种统计方法都不会使用全表扫描,而是使用了PRIMARY 索引优化查询,性能是非常高的。所以,想要查询表中的记录行数,使用它们之中的任何一个都是可以的。

COUNT(expr) 和 COUNT(DISTINCT expr) 由于需要传入列作为参数,所以,它们统计的是非 NULL 的行数。如果加上了 DISTINCT ,则是统计列值不相同且非 NULL 的行数

MySQL数据库基础,COUNT(n) 和 COUNT(*) 用于统计表中的总行数,不关心列值是否为 NULL。
COUNT(expr) 用于统计列值非 NULL 的行记录数。
COUNT(DISTINCT expr) 用于统计列值不同且非 NULL 的行记录数。

MIN 、 MAX 函数适用于任何能够排序的数据,注意,不同于 AVG ,它们的适用范围不只是数值类型,日期类型、字符串类型也同样是允许的。由于这两个函数的功能、使用方法相对来说比较简单,这里给出一个例子,不再多做说明。

使用 SUM 计算合计值

SUM 函数正如同这个单词的字面意思,用于计算列的合计值(总值)。它几乎与 AVG 有一样的性质:只能用于数值类型的列,且会忽略值为 NULL 的列。

分组聚合

分组的意思就是数据根据某一列或者某几列分类, MySQL 中可以使用 GROUP BY 子句实现这一功能。 GROUP BY 结合聚合函数就可以实现将表数据分类再汇总的效果。

SELECT
< 列名 1>,
< 列名 2>......
FROM
< 表名 >
WHERE
......
GROUP BY
< 列名 1>,
< 列名 2>......;

GROUP BY 子句中的列称为聚合列或分组列。

需要注意的是,出现在 SELECT 子句中的单独列(非聚合列,示例中的即为 type ),必须出现在 GROUP BY 子句中作为分组列。但是反过来,分组列是可以不出现在 SELECT 子句中的。

MySQL的优化,分组聚合的结果没有什么特殊之处,当然也是可以指定排序的。指定排序的列可以是分组列,也可以不是分组列。

有一种特殊情况,当排序列与分组列相同时,则可以合并 GROUP BY 和 ORDER BY 子句,即只需要在 GROUPBY 子句的后面添加 DESC 或 ASC 。例如:

在 MySQL 中,使用 AVG 、 COUNT 等聚合函数对表记录进行统计操作后,可以使用 HAVING 子句对结果进行过滤,且 HAVING 子句需要写在 GROUP BY 子句之后

---- 分组(group by)

可以看到, HAVING 的使用方法与 WHERE 是相似的,只是它们执行的时机不同。总结下来,它们有以下两个区别:

WHERE 子句在分组前对记录进行过滤
HAVING 子句在分组后对记录进行过滤

数据库技术项目化教程(基于MySQL)。分组聚合的精髓在于数据分组,可以把每一个分组都认为是单独的数据表记录,最终的聚合结果则是将每一个单独数据表聚合之后 merge 而成的。另外,需要知道,聚合函数可以在 SELECT 、 HAVING 和 ORDER BY 子句中使用,但是不能在 WHERE 子句中使用。

很有用的条件判断函数与系统函数

IFNULL (v1, v2) 表达的语义是:如果 v1 不为 NULL ,则返回 v1 ,否则,返回 v2 。同样, IFNULL 函数的返回值是数字还是字符串,则视其所在语境而定。

NULLIF (v1, v2) ,它表达的语义是:如果 v1 等于 v2 ,那么返回值是NULL ,否则返回值为 v1 。

工作中用到的理论范式,工具,建模经验

理论范式

看了⼀遍摄影史,和所有的技术⼀样,估计当年发明摄影术,以及其后不断改进摄影技术的⼈们,甚⾄包括乔布斯,都没有想到摄影会⾛到今天的形态,滤镜、美颜、动画、AR……
我觉的摄影似乎是在⼯具和艺术之间摇摆,有时候是作为记录⼯具出现的,⽐如⼀些真实的抓拍作品,即使是摆拍,其实也有新闻价值,关键是在于如何解读;有时候摄影是作为艺术出现的,包括⼀些⻛景、⼈像、静物。其实还有⼀些既不是⼯具,也不是艺术的存在,⽐如美颜⾃拍。很多时候我们在社交媒体上发布⼀张照⽚,其实是⼀种表达。

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/4/58700.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息