我试图查询表CANCELLATION_DEFINITION,并计算具有不是' t" - "的ACTION_TYPE值的行数。不幸的是,该查询给了我不准确的结果。例如,当表中有6行具有除" - "之外的ACTION_TYPE值时,它将为此表返回3。代码如下。
SELECT COUNT(*)
FROM (
SELECT DISTINCT
ACTION_TYPE
FROM CANCELLATION_DEFINITION WHERE ACTION_TYPE != '-'
)AS distinctified
答案 0 :(得分:3)
执行select distinct时,它只返回不同的(即不同的)值。因此,如果你有action_type [“INSERT”,“UPDATE”,“UPDATE”,“DELETE”],它只会给你3个结果,因为它合并了UPDATE和UPDATE。
你真正想要的是
SELECT COUNT(ACTION_TYPE)
FROM CANCELLATION_DEFINITION
WHERE ACTION_TYPE != '-'
答案 1 :(得分:2)
尝试:
SELECT COUNT(*)
FROM (
SELECT ACTION_TYPE
FROM CANCELLATION_DEFINITION WHERE ACTION_TYPE != '-'
)AS distinctified
希望有所帮助
答案 2 :(得分:1)
尝试删除distinct关键字并将您的查询更改为: -
SELECT COUNT(ACTION_TYPE)
FROM CANCELLATION_DEFINITION WHERE ACTION_TYPE != '-';
答案 3 :(得分:0)
请尝试以下操作,我认为不需要您的子查询:
SELECT COUNT(ACTION_TYPE) AS distinctified
FROM
CANCELLATION_DEFINITION
WHERE ACTION_TYPE != "-"