更新时间:2023年11月10日11时15分 来源:传智教育 浏览次数:
之前我们做的查询都是横向查询,它们都是根据条件一行一行的进行判断,而使用聚合函数查询是纵向查询,它是对一列的值进行计算,然后返回一个单一的值;另外聚合函数会忽略空值。
-- 1 查询商品的总条数 select count(*) from product; -- 2 查询价格大于200商品的总条数 select count(*) from product where price > 200; -- 3 查询分类为'c001'的所有商品的总和 select sum(price) from product where category_id = 'c001'; -- 4 查询商品的最大价格 select max(price) from product; -- 5 查询商品的最小价格 select min(price) from product; -- 6 查询分类为'c002'所有商品的平均价格 select avg(price) from product where category_id = 'c002';
聚合查询操作的示例代码如下:
-- 1 查询商品的总条数 select count(*) from product; -- 2 查询价格大于200商品的总条数 select count(*) from product where price > 200; -- 3 查询分类为'c001'的所有商品的总和 select sum(price) from product where category_id = 'c001'; -- 4 查询商品的最大价格 select max(price) from product; -- 5 查询商品的最小价格 select min(price) from product; -- 6 查询分类为'c002'所有商品的平均价格 select avg(price) from product where category_id = 'c002';
NULL值的处理
count函数对null值的处理,如果count函数的参数为星号(*),则统计所有记录的个数。而如果参数为某字段,不统计含null值的记录个数。
sum和avg函数对null值的处理,这两个函数忽略null值的存在,就好象该条记录不存在一样。
max和min函数对null值的处理,max和min两个函数同样忽略null值的存在。
NULL值的处理操作,示例代码如下:
-- 创建表 create table test_null( c1 varchar(20), c2 int ); -- 插入数据 insert into test_null values('aaa',3); insert into test_null values('bbb',3); insert into test_null values('ccc',null); insert into test_null values('ddd',6); -- 测试 select count(*), count(1), count(c2) from test_null; select sum(c2),max(c2),min(c2),avg(c2) from test_null;