首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Oracle MIN()和MAX()组函数中DISTINCT关键字的用途是什么?

Oracle MIN()和MAX()组函数中DISTINCT关键字的用途是什么?
EN

Stack Overflow用户
提问于 2015-06-02 22:06:46
回答 1查看 171关注 0票数 1

我刚刚发现MIN()和MAX()函数中允许使用DISTINCT关键字,但我不知道它的用法。

无论是否使用DISTINCT关键字,调用上述函数之一都会返回相同的结果吗?

代码语言:javascript
复制
SELECT MAX(salary), MAX(DISTINCT salary) from EMPLOYEES;

我的意思是,在COUNT()、SUM()或AVG()上使用DISTINCT关键字是有区别的,但我认为在MIN()和MAX()中都是无用的。

EN

回答 1

Stack Overflow用户

发布于 2015-08-28 15:54:37

是的,MAX()MIN()中的DISTINCT是没用的。在COUNT()中,所有值的SUM()AVG()结果与唯一值的结果不同。例如:

代码语言:javascript
复制
with t as
(
    select 1 as val from dual union all
    select 1 as val from dual union all
    select 1 as val from dual union all
    select 2 as val from dual union all
    select 3 as val from dual
)
select 
    COUNT(val),             -- =5 (5 rows was selected)
    COUNT(distinct val),    -- =3 (3 rows with unicue value) 
    SUM(val),               -- =8 (1+1+1+2+3)
    SUM(distinct val),      -- =6 (1+2+3, only unique values)
    AVG(val),               -- =1,6 (sum()/count() = 8/5)
    AVG(distinct val)       -- =2 (sum(distinct)/count(distinct) = 6/3)
from t

Max(val)回答了这个问题-“这个列表1,1,1,2,3中的最大值是多少?”因此,Max(distinct val)应在1、2、3值列表中查找最大值。很明显,结果将是平等的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30598412

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档