2009-08-26 4 views
1

SQL Server 2005의 경우 쿼리 작성기에서 자동으로 그룹 추가를 선택합니다. 선택한 모든 필드에 group by 절을 추가하십시오. 하나 이상의 필드가 비트 유형이면 오류가 발생합니다. 왜 이런거야? 칼럼을 TINYINT로 캐스팅하고 있습니까?비트 열별로 그룹화 할 수 없습니다.

+0

무엇이 오류입니까? 비트 필드에서 그룹을 사용하는 데 문제가 없습니다. – JeffO

+0

열이 집계 함수에 포함되어 있지 않기 때문에 선택 목록에서 열이 잘못되었습니다.이 열은 그룹에서이를 포함하지 않았기 때문에 내 잘못이었습니다. 나는이 질문을 롤 내려 줄 방법을 찾고있다. – Marlon

+1

남겨주세요. 답을 코드화하여 보여주십시오. – JeffO

답변

3

해당 도구의 제한 사항입니다. SQL Server Management Studio에서 실제 sql을 직접 작성하면 작동합니다.

CREATE TABLE Test2 
(ID INT, 
bitvalue bit, 
flag char(1)) 
GO 

insert into test2 values (1,1,'a') 
insert into test2 values (2,1,'a') 
insert into test2 values (3,1,'a') 
insert into test2 values (4,1,'b') 
insert into test2 values (5,1,'b') 
insert into test2 values (6,1,'b') 
insert into test2 values (7,1,'b') 

insert into test2 values (10,0,'a') 
insert into test2 values (20,0,'a') 
insert into test2 values (30,0,'a') 
insert into test2 values (40,0,'b') 
insert into test2 values (50,0,'b') 
insert into test2 values (60,0,'b') 
insert into test2 values (70,0,'b') 

select * from test2 

select count(*),bitvalue,flag from test2 group by bitvalue,flag 

OUTPUT

ID   bitvalue flag 
----------- -------- ---- 
1   1  a 
2   1  a 
3   1  a 
4   1  b 
5   1  b 
6   1  b 
7   1  b 
10   0  a 
20   0  a 
30   0  a 
40   0  b 
50   0  b 
60   0  b 
70   0  b 

(14 row(s) affected) 

      bitvalue flag 
----------- -------- ---- 
3   0  a 
3   1  a 
4   0  b 
4   1  b 

(4 row(s) affected) 
+0

감사합니다! 나는 내 데이터로 이것을 시도 할 것이다. – Marlon

2

도구는 인덱싱 또는 비트 열을 그룹화와 같은 일부 작업을 허용하지 않습니다

여기 내 테스트 코드입니다. 원시 SQL 않습니다.

비트 열에 대해서는 집계 할 수 없습니다. 먼저 캐스팅해야합니다. 물론 비트 열을 평균하는 것은 의미가 없지만 MAX/MIN은 여러 행에 걸쳐 OR/AND로 유용합니다.

관련 문제