2015-01-14 2 views
-2

I는 표/뷰 가지고는 SQL 카운트

Department number_of_customers number_of_employess 

dep1   10     15 
dep3   20     18 
dep1   11     11 
dep2   6     8 
dep2   20     1 

내가하고자 갖는 특정 속성
예 을 행을 계산하는 각 분류 레코드 다음 부서 기 행을 number_of_customer> number_of_employees

내 현재 쿼리는 다음과 같습니다

 
    SELECT dep,count(*) 
    FROM My_table 
    WHERE n_of_cust > n_of_employees 
GROUP BY dep 

을하지만 그건 내가 원하는 게 아니에요때문에 예를 들어 dep1이 결과 테이블
에 나타나지 않고 있습니다.

추신 : 누군가가 테이블의 들여 쓰기를 도와주세요.

+0

더 dep1 행은 포함되지 않습니다 의미는 "n_of_cust> n_of_employees"을 가지고 WHERE 절에서 :

는 다음과 같이하십시오. 그러면 dep1이 포함되기를 원한다고합니다. dep1이 있어야하는지 여부를 결정해야합니다! 무엇을 btw로 계산하려고합니까? 테이블에서 dep1과 dep2가 두 번 언급되는 이유는 무엇입니까? – jarlh

답변

2

:처럼 뭔가. SUM()GROUP BY 쿼리의 이러한 식에 적용 할 수 있습니다.

SELECT dep, 
     count(*) totalrows, 
     SUM(n_of_cust > n_of_employees) many_cust_rows, 
     SUM(n_of_cust = n_of_employees) equal_cust_rows 
    FROM My_table 
    GROUP BY dep 
+0

고마워,이게 내가 찾고 있던 것 같아! – GionJh

1

동일한 테이블에 JOIN을 사용해야합니다. number_of_customers > number_of_employees 같은 식 (true) 또는 0 (거짓) 중 하나 1의 값이

 SELECT t1.dep, s1.quantity 
     FROM My_table AS t1 
    LEFT JOIN (SELECT dep,count(*) 
       FROM My_table 
       WHERE n_of_cust > n_of_employees 
      GROUP BY dep 
      ) AS s1 ON t1.dep = d1.dep 
+0

답변과 편집 작업에 감사드립니다. – GionJh