안녕하세요.
집계를 할려구 하는데 제가 알고 있는 쿼리로 할려구 하니 시간이 너무 걸리내요..
테이불 Tmp (a, b, c, d)가 있다면
a b c d
1 T 0 1
1 T 0 1
1 B 0 1
1 A 0 1
1 C 0 1
2 A 1 1
이있습니다..여기서 제가 알고싶은건
쿼리결과
A Cnt A1 A2 A3 A4 A5
1 5 1 1 1 0 2
2 1 1 0 0 0 0
이런식으로 a필드내에 각수량을 알고싶습니다.
Select a, Count(a) As Cnt,
Count(Select Count(*) From Tmp Where (b = 'A') And a.a = a) As A1,
Count(Select Count(*) From Tmp Where (b = 'B') And a.a = a) As A2,
Count(Select Count(*) From Tmp Where (b = 'C') And a.a = a) As A3,
Count(Select Count(*) From Tmp Where (b = 'D') And a.a = a) As A4,
Count(Select Count(*) From Tmp Where (b = 'T') And a.a = a) As A5
From Tmp A Group By a
이런식으로 하면 자료가 별루 없으면 상관이 없는데 자료가 많으면 시간이 너무 걸리내요..고수님 좋은 방법이 없을까요..
디비는 Access쓰고 있습니다..
Select a, Count(a) As Cnt,
sum(IIF(b, 'A', 1, 0)) as A1,
sum(IIF(b, 'B', 1, 0)) as A2,
sum(IIF(b, 'C', 1, 0)) as A3,
sum(IIF(b, 'D', 1, 0)) as A4,
sum(IIF(b, 'E', 1, 0)) as A5
From Tmp A Group By a