聚集不同值
AVG(),COUNT(),MIN(),MAX(),SUM()这五个聚集函数都可以如下使用:
- 对所有行执行计算,指定ALL参数或不指定参数(因为ALL是默认行为)
- 只包含不同的值来聚集,指定DISTINCT参数
提示:👀
ALL参数不需要指定,因为它是默认行为。如果不指定DISTINCT,则假定为ALL。
下面的例子使用AVG函数返回特定供应商提供的产品的平均价格。使用了dictinct参数,因此平均值只考虑不同的产品价格,不考虑每种产品的数量。
select avg(distinct prod_price) as avg_price from products where vend_id = 'DLL01';
输出:
-
注意:👀
distinct 不能用于count(*),因为distinct必须使用列名,不能用于计算或表达式。 -
提示:👀
虽然distinct用于min()和max()没有语法错误,但是没啥意义。