我有以下声明:
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;
在此特定结果集上,如果我删除了DISTINCT和COUNT(),则结果集将返回完全相同数据的九行.如果我添加DISTINCT,我会得到一行.添加COUNT()我得到九个结果,我期待一个.我假设操作的顺序正在影响我的结果,但我怎么能解决这个问题,所以我得到了我想要的结果?
注意:这是较大的sql语句中的子选择.
解决方法
SELECT DISTINCT COUNT(Z.TITLE)计算具有Z.TITLE(九)值的行数. DISTINCT是多余的,因为COUNT已经汇总了行.
SELECT COUNT(DISTINCT Z.TITLE)计算Z.TITLE(一)中不同值的数量.