쿼리 관련 질문 드리니다.
본문
안녕하세요
조인 후에 중복 제거를 위해 group by 하는되요
group by 쿼리 관련 질문드립니다.
> total count 방법 조언 문의 드립니다.
** 아래는 쿼리 샘플 및 설명입니다.
SELECT * FROM 050_cdr A
INNER JOIN contel B ON A.vn=B.tel
WHERE B.id is NOT NULL
GROUP BY A.cdrNo
-- 050_cdr (050 전화 연결된 상태)
-- contel (상담전화)
-- A.vn (050 전화번호), B.tel (매칭된 050 전화번호), B.id (상담전화 고유번호), A.cdrNo(050 고유번호)
답변 5
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
형태로 접근가능합니다.
inner join일 경우
B.id is NOT NULL
조건은 불필요합니다.
group by를 사용하면 그룹별로 카운트할 수 있죠.
전체를 카운트하려면 전체 카운트 쿼리를 한번 더 써야 할 것 같네요.
내용을 잘 모르니,
한번 해 보신 query문을 올려 보세요.
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
---------
이렇에 해서 전체 갯수는 구했는되요
데이터량이 많아 질 경우 느려 질 수 있다고하네요...
답변을 작성하시기 전에 로그인 해주세요.