为什么DISTINCT COUNT()会返回9而不是1?

Mik*_*lls 7 sql db2 ibm-midrange

我有以下声明:

SELECT DISTINCT COUNT(Z.TITLE) AS COUNT 
FROM QMFILES.MPRLRREQDP Y, 
     QMFILES.MPRLRTYPP Z
WHERE Y.REQUEST_TYPE = Z.ID 
  AND Y.REQUEST_ID = 13033;
Run Code Online (Sandbox Code Playgroud)

在此特定结果集上,如果我删除DISTINCT并且COUNT()结果集将返回完全相同数据的九行.如果我添加DISTINCT,我会得到一行.添加COUNT()我得到九个结果,我期待一个.我假设操作的顺序正在影响我的结果,但我怎么能解决这个问题,所以我得到了我想要的结果?

注意:这是较大的SQL语句中的子选择.

小智 15

SELECT DISTINCT COUNT(Z.TITLE)计算值为Z.TITLE(九)的行数.这DISTINCT是多余的,因为COUNT已经汇总了行.

SELECT COUNT(DISTINCT Z.TITLE)计算Z.TITLE(一)中不同值的数量.