2012-09-12 2 views
1

내가 비율을 계산하려고를 사용하지만 카운트 쿼리가 오류로 올 때, 아래 그 근처 오류 잘못된 구문 '<'와 함께 제공되는 쿼리SQL 구문 오류 횟수

SELECT  COUNT([advice] <> '0') * 100/COUNT(DISTINCT userID) As Perc 
FROM   tbUser 
GROUP BY userID 

무엇 나는 단순히 '0'값을 가진 행을 가진 advice 열을 계산 한 다음 전체 사용자가 그 값을 나누기를 원한다.

내가 무엇입니까 어떤 제안이 잘못 감사

+0

'COUNT' 필드에 값이있는 레코드를 카운트 (비 null), 추가 조건을 허용하지 않습니다. 이것이 귀하의 솔루션이 합계를 사용하여 Andomar가 게시 한 이유입니다. – Bartosz

답변

4

교체 :

COUNT([advice] <> '0') 

으로 :

sum(case when advice <> '0' then 1 end) 
+2

'else 0'이 없어야합니까? 그렇지 않으면 최소한 하나의'advice = '0 ''이 생기 자마자 NULL을 얻게 될 것이다. –

+1

@DanielHilgarth :'sum'은'null'을 무시합니다, f.e. 'sum (0, 1, null)'은 1을 반환합니다. – Andomar

+0

실제로. 나는 항상 그것이 다르다고 생각했다. –