sql函数

2020-04-05  本文已影响0人  summer琴
image.png

以上均为聚合函数,必须注意where条件中不能直接使用聚合函数,可以和group by以及having一起使用
select语句关键字顺序:

SELECT ... FROM ... WHERE ... GROUP BY ... HAVING ... ORDER BY ...

select语句执行顺序为:

FROM > WHERE > GROUP BY > HAVING > SELECT的字段 > DISTINCT > ORDER BY > LIMIT

为何不能在where中使用聚合函数?
聚合函数都是针对列操作的,必须结果集确定后,而where语句针对行操作,执行where语句时结果集还没确定下来
如何解决呢?
1、可以使用子查询语句

select c_name, grade from isTester.idoxu where grade = (select min(grade) from isTester.idoxu);

2、使用group by和having
having语句类似where条件语句,只是针对聚合函数,having语句在group by后执行,此时结果集已确定

SELECT Websites.name, Websites.url, SUM(access_log.count) AS nums FROM (access_log
INNER JOIN Websites
ON access_log.site_id=Websites.id)
GROUP BY Websites.name
HAVING SUM(access_log.count) > 200;
上一篇 下一篇

猜你喜欢

热点阅读