摄影并不仅仅是对现实世界的还原,更多时候是可以被⽤作传递观点和表达意⻅的⼯具
聚合函数则属于多行函数,表中的多行记录会参与计算,并返回一个数值,且它通常用于分组的相关统计。
所有的聚合函数,如果是以列名作为 expr (例如这里的 salary ), MySQL 会在计算之前把列值是 NULL 的记录排除掉。这里需要理解,不能认为 “NULL 是 0” ,实际是列值为 NULL 的行不会计入分母
另外,从输出中还可以得出结论, 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 函数正如同这个单词的字面意思,用于计算列的合计值(总值)。它几乎与 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……
我觉的摄影似乎是在⼯具和艺术之间摇摆,有时候是作为记录⼯具出现的,⽐如⼀些真实的抓拍作品,即使是摆拍,其实也有新闻价值,关键是在于如何解读;有时候摄影是作为艺术出现的,包括⼀些⻛景、⼈像、静物。其实还有⼀些既不是⼯具,也不是艺术的存在,⽐如美颜⾃拍。很多时候我们在社交媒体上发布⼀张照⽚,其实是⼀种表达。
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态