테스트 사이트 - 개발 중인 베타 버전입니다

쿼리 관련 질문 드리니다. 채택완료

sukja 4년 전 조회 2,157

안녕하세요

조인 후에 중복 제거를 위해 group by 하는되요

group by  쿼리 관련 질문드립니다.

> total count 방법 조언 문의 드립니다.

 

** 아래는 쿼리 샘플 및 설명입니다.

</strong></p>

<p>SELECT *  FROM 050_cdr A

    INNER  JOIN contel B ON A.vn=B.tel 

WHERE B.id is NOT NULL

GROUP BY A.cdrNo</p>

<p>-- 050_cdr (050 전화 연결된 상태)

-- contel (상담전화)

-- A.vn (050 전화번호), B.tel (매칭된 050 전화번호), B.id (상담전화 고유번호), A.cdrNo(050 고유번호)</p>

<p><strong>
 

댓글을 작성하려면 로그인이 필요합니다.

답변 5개

채택된 답변
+20 포인트
플래토
4년 전

Group by 는 묶는 기준점을 명시하는 사항입니다.

 

그외에는 전부 카운트가 가능하죠

위에명시하신 내용으로는 카운트를 하고 싶은 기준을 알기 어렵습니다.

 

cdrNo 를 기준으로 추출하고싶은것들을 하나씩 추려서 카운트 하는게 가장 효과적입니다.

 

select a.cdrNo, count(A.vn) vn_cnt, count(B.tel) B_tel_cnt ...

from 050_cdr A

    INNER JOIN contel B ON A.vn=B.tel and B.id is NOT NULL  --B는 join된 테이블이라서 on 뒤에 명시하는게 낫습니다.

GROUP BY A.cdrNo

형태로 접근가능합니다.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

s
4년 전

SELECT count(distinct cdrNo) as cnt FROM 050_cdr A     INNER  JOIN contel B ON A.vn=B.tel  WHERE B.id is NOT NULL

---------

이렇에 해서 전체 갯수는 구했는되요

데이터량이 많아 질 경우 느려 질 수 있다고하네요...  

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

엑스엠엘
4년 전
조인 조건과 cdrNo 등을 인덱스로 만들어 주세요.

댓글을 작성하려면 로그인이 필요합니다.

내용을 잘 모르니,

한번 해 보신 query문을 올려 보세요.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

4년 전

group by를 사용하면 그룹별로 카운트할 수 있죠.

전체를 카운트하려면 전체 카운트 쿼리를 한번 더 써야 할 것 같네요.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

inner join일 경우

B.id is NOT NULL

조건은 불필요합니다.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인