sql汇总查询

SUM()    计算字段的总和

AVG()    计算字段的平均值

MIN()    查找字段中的最小值

MAX()    查找字段中的最大值

COUNT()    计算字段中值的数目

COUNT(*)    计算查询结果的记录数

选择列表中的字段函数

    select avg(field),sum(field2),(100 * avg(field3/field4)) from table,table1 where ...

NULL将被忽略:

    如果字段中任何数据值都是NULL,那么在计算函数的值时都可将它们忽略。

    如果字段中的每个数据项都是NULL,那么SUM()、AVG()、MIN()、MAX()字段函数返回一个NULL值,COUNT()函数返回一个0值。

    如果字段中没有数据项(即字段是空的),那么SUM(),AVG(),MIN()和MAX()字段函数返回一个NULL值,COUNT返回一个0值。

    COUNT(*)计算记录时并不理会字段中是否存在NULL值,如果没有记录返回0值。

消除重复记录(DISTINCT):

    select count(distinct field) from table count(distinct field2)

分组查询(GROUP BY)

    select * from table where 。。。 group by count(field)...

分组搜索条件(HAVING 子句):

    用于分组查询中指定条件,和SELECT中WHERE用法一样。

    select * from table,table2 where ... group by field group by field2 having count(*)>=2 

    HAVING子句用于把记录组包含进查询结果或查询结果中去除,所以它指定的搜索条件必须是作为一个整体应用于组而不是应用于各个记录。

    HAVING字句几乎总是和group by 字句一起使用,但是SELECT语句并不要求这样,如果HAVING字句没有GROUP BY字句的情况下出现,SQL把整个的详细查询结果认为是一个组。在HAVING字句中的字段函数被应用于一组以决定是否将这组包含或排除在查询结果中,并且改组由所有的记录组成

原文地址:https://www.cnblogs.com/fanchangfa/p/2633820.html