SQL语句的详细操作(三)

常用SQL函数

  • avg()
    avg() 函数返回数值列的平均值。
    在这里插入图片描述
select avg(count) as CountAverage from access_log;

在这里插入图片描述

  • count()
    count() 函数返回匹配指定条件的行数。
-- COUNT(column_name) 函数返回指定列的值的数目(NULL 不计入)
select count(column_name) from table_name;
-- COUNT(*) 函数返回表中的记录数:
select count(*) from table_name;
-- COUNT(DISTINCT column_name) 函数返回指定列的不同值的数目:
select count(distinct column_name) from table_name;
  • max()
    max() 函数返回指定列的最大值。
select max(column_name) from table_name;
  • min()
    min() 函数返回指定列的最小值。
select max(column_name) from table_name;
  • sum()
    sum() 函数返回数值列的总数。
select sum(column_name) from table_name;
  • group by
    GROUP BY 语句用于结合聚合函数,根据一个或多个列对结果集进行分组。
    在这里插入图片描述
select site_id, sum(count) as nums from access_log group by site_id;

在这里插入图片描述

  • having
    在 SQL 中增加 having 子句原因是,WHERE 关键字无法与聚合函数一起使用。having 子句可以让我们筛选分组后的各组数据。
    在这里插入图片描述
    在这里插入图片描述
-- 现在我们想要查找总访问量大于 200 的网站。
select Websites.name, Websites.url, sum(access_log.count) as nums
from access_log inner join Websites on Websites.id = access_log.site_id
group by Websites.name
having sum(access_log.count) > 200;
-- 现在我们想要查找总访问量大于 200 的网站,并且 alexa 排名小于 200。
select Websites.name, Websites.url, sum(access_log.count) as nums
from access_log inner join Websites on Websites.id = access_log.site_id
where Websites.alexa < 200
group by Websites.name
having sum(access_log.count) > 200;

在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_42647711/article/details/109241948
今日推荐