2010-08-12 3 views
3

현재 나는 3 서브 쿼리와 하나 개의 쿼리, 모든 쿼리가 같은 테이블에 있습니다
,
모든 쿼리 내가하여 그룹을하고 생각했다4 개의 동일한 테이블에 대한 쿼리가 더 좋은 방법일까요?

조항 그러나 이것은 SUM을 다른 파괴 할 곳이 뭐하는 거지() 여기

,334,178,896,772을 설명하는 쿼리 여기

SELECT SUM(club) AS club, 
(SELECT COUNT(id) FROM action_6_members WHERE SUBSTR(CODE, 1, 1) = '9') AS 5pts, 
(SELECT COUNT(id) FROM action_6_members WHERE SUBSTR(CODE, 1, 1) = 'A') AS 10pts, 
(SELECT COUNT(id) FROM action_6_members WHERE SUBSTR(CODE, 1, 1) NOT IN('9', 'A')) AS General 
FROM action_6_members; 

입니다 553,210

답변

3

사용 : 나는 그런 일, 을하고 생각하지만 난 클럽에 대한 부분 값을 가진 행 수백, 모두와 함께 결국

SELECT SUM(club) AS club, 
     SUM(CASE WHEN SUBSTR(CODE, 1, 1) = '9' THEN 1 ELSE 0 END) AS 5pts, 
     SUM(CASE WHEN SUBSTR(CODE, 1, 1) = 'A' THEN 1 ELSE 0 END) AS 10pts, 
     SUM(CASE WHEN SUBSTR(CODE, 1, 1) NOT IN('9', 'A') THEN 1 ELSE 0 END) AS General 
    FROM action_6_members; 
0

비틀기이 :

SELECT SUM(club) as club, COUNT(1) FROM action_6_members GROUP BY SUBSTR(CODE, 1, 1) 
+0

및 , 나는 9로 시작하지 않거나 하나의 그룹으로 그룹화 된 코드를 필요로한다. – Hailwood

+0

나는 이것을 다음과 같이 할 수있다 : 'SELECT SUM (club) AS 클럽, COUNT (1) FROM action_6_members GROUP BY IF (SUBSTR (CODE, 1, 1) = 9, 1, IF (SUBSTR (CODE, 1,1) = 'A', 2, 3)); 합계 – Hailwood

관련 문제