什么';Oracle MIN()和MAX()组函数中使用DISTINCT关键字的目的是什么?
我刚刚发现在MIN()和MAX()函数中允许使用DISTINCT关键字,但我没有得到它的使用 对上述函数之一的调用是否会返回相同的结果(带或不带DISTINCT关键字)什么';Oracle MIN()和MAX()组函数中使用DISTINCT关键字的目的是什么?,oracle,distinct,Oracle,Distinct,我刚刚发现在MIN()和MAX()函数中允许使用DISTINCT关键字,但我没有得到它的使用 对上述函数之一的调用是否会返回相同的结果(带或不带DISTINCT关键字) SELECT MAX(salary), MAX(DISTINCT salary) from EMPLOYEES; 我的意思是,在COUNT()、SUM()或AVG()上使用DISTINCT关键字会有所不同,但我认为在MIN()和MAX()中都是无用的,在MAX()和MIN()中DISTINCT是无用的。在COUNT()中,SU
SELECT MAX(salary), MAX(DISTINCT salary) from EMPLOYEES;
我的意思是,在COUNT()、SUM()或AVG()上使用DISTINCT关键字会有所不同,但我认为在MIN()和MAX()中都是无用的,在
MAX()和MIN()中DISTINCT
是无用的。在COUNT()
中,SUM()
或AVG()
所有值的结果与唯一值的结果不同。比如说,-
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]值列表中查找最大值。很明显,结果是相等的。是的,MAX()
和MIN()
中的DISTINCT
是无用的。在COUNT()
中,SUM()
或AVG()
所有值的结果与唯一值的结果不同。比如说,-
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]值列表中查找最大值。很明显,结果是相等的。是的,这是无用的,但仍然不需要锁定关键字的功能。这个选项不可能对所有聚合/分析函数都通用吗?也许这是SQL解析器的功能。是的,这是无用的,但仍然不需要锁定关键字的功能。这个选项不可能是所有聚合/分析函数的通用选项吗?也许这是SQL解析器的功能。是的,这是无用的,但仍然不需要锁定关键字的功能。这个选项不可能是所有聚合/分析函数的通用选项吗?可能是SQL解析器的特性。