database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
ㆍMS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MS-SQL Q&A 3967 게시물 읽기
No. 3967
쿼리 질문 하나 드립니다. 가능한경우인지 봐주세요
작성자
김민
작성일
2008-01-11 12:37
조회수
3,327

SELECT   COUNT(*) AS sumCount

FROM      address

WHERE   Address_1 LIKE '%서울%'


이라고 해서 서울의 이란것을 포함하는 튜플의 갯수를 가져왔습니다.

근데 경기도도 뽑고 싶어서

쿼리를 또하나 작성했습니다.


SELECT   COUNT(*) AS sumCount1

FROM      address

WHERE   Address_1 LIKE '%경기%'


저 두개를 합칠수 없을까요?


하나의 쿼리로 만들고 싶습니다.

즉 결과는


서울 : 몇명

경기 : 몇명 


이렇게 하고 싶습니다.

데이타는

table : address

Address_1

서울 강서구

서울 강동구

서울 강북구

서울 강남구

경기 부천시

경기 부천시 중동


이렇게 있습니다.


도와주세요...

이 글에 대한 댓글이 총 3건 있습니다.

 

if object_id('address') is not null

drop table [address]

create table [address] (address_1 varchar(50))

 

insert [address]

select '서울 강서구' union all

select '서울 강동구' union all

select '서울 강북구' union all

select '서울 강남구' union all

select '경기 부천시' union all

select '경기 부천시 중동'

 

 

---------------------------------------------------

select count(case when address_1 like '서울%' then 1 end) as sumcount,

       count(case when address_1 like '경기%' then 1 end) as sumcount1

  from [address]

 where address_1 like '서울%'

    or address_1 like '경기%'

/*

sumcount    sumcount1

----------- -----------

4           2

경고: 집계 또는 다른 SET 연산에 의해 Null 값이 제거 되었습니다.

 

(1 적용됨)

*/

최석준(beatchoi)님이 2008-01-11 14:08에 작성한 댓글입니다.
SELECT SUBSTRING(ADDRESS_1, 0, CHARINDEX(' ', ADDRESS_1)) AS 지역,
             COUNT(*) AS sumCount1
FROM      address
WHERE Address_1 LIKE '%경기%' 
           OR ADDRESS_1 LIKE '%서울%'
GROUP BY SUBSTRING(ADDRESS_1, 0, CHARINDEX(' ', ADDRESS_1))
..님이 2008-01-11 15:08에 작성한 댓글입니다. Edit

만일 아래와 같이
select 지역, count(*) from tab1 where 지역 like '서울%' or 지역 like '경기%' 
group by 지역

형태로 사용하게 되면,
지역에 걸려 있는 인덱스를 사용 할수 없습니다.
만일 인덱스 검색에서 서울이 아닐 경우 다시 경기 인지 확인해야 하므로, 결국 테이블 스캔을 하게 됩니다.

이럴 경우
select 지역,count(*) from tab1 where 지역 like '서울%'
union
select 지역, count(*) from tab1 where 지역 like '경기%'

형태로 질의 하시면 두개의 쿼리로 나눠지게 되나, 각각의 쿼리가 인덱스를 사용하게 되므로, 
위의 쿼리 보다 나은 결과를 가지고 올것으로 보여 집니다.

lnx4u님이 2008-01-24 11:02에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
3970varchar->real [1]
줄리아
2008-01-12
2824
3969[급] 분산트랜잭션관련 문의 (메시지 7391)
reo007
2008-01-11
4517
3968pivot 사용에서 질문....
이경훈
2008-01-11
3353
3967쿼리 질문 하나 드립니다. 가능한경우인지 봐주세요 [3]
김민
2008-01-11
3327
3966트리에 관한 질문 [2]
김현호
2008-01-10
3276
3965제 생각이 맞는건지 판단좀 부탁드립니다,,, [3]
박희철
2008-01-10
3189
3964MS sql 2005설치시 "서비스 계정" 부분
arami
2008-01-10
3715
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다