MySQL 에서 테이블에 중복된 값들의 갯수와 각각의 값을 찾아보는 쿼리입니다. 예시를 위해 아래와 같은 테이블이 있다고 가정하고( 테이블 이름은 carts 로 하겠습니다. ), 2번이상 구입한 사람의 이름과 구입횟수를 구해보는 쿼리를 만들어보겠습니다.
중복값 갯수와 값 구하기위의 테이블 예제로 2번 이상 구입한 사람의 이름과 구입횟수를 검색하는 쿼리입니다.
실행결과는 다음과 같습니다. 중복값 구하기로 고생할 누군가에게 도움이 되었으면 좋겠습니다^^ 안녕하세요?^^ 개발자라는 소리를 듣고 싶어 늦은 나이에 개발의 세계에 몸담게 된 Brad 라고 합니다. 아직 개발의 'ㄱ' 자도 모르지만, 개발을 배우면서 알게되는 것들을 림프에 정리해보려고 합니다. 저의 부족한 글이 누군가에게 조금이나마 도움이 되길 바랍니다. 중복 개수 확인 1 문제상황[ | ]아래와 같은 테이블에서 A, B, C, … 각각의 개수를 구하고 싶다. mysql> SELECT * FROM jmtable; +----+-----+ | id | str | +----+-----+ | 1 | A | | 2 | B | | 3 | A | | 4 | C | | 5 | C | | 6 | E | | 7 | D | | 8 | C | +----+-----+ 8 rows in set (0.00 sec) 2 해결방법[ | ]SELECT 컬럼명, COUNT(*) FROM 테이블명 GROUP BY 컬럼명; mysql> SELECT str, COUNT(*) FROM jmtable GROUP BY str; +-----+----------+ | str | COUNT(*) | +-----+----------+ | A | 2 | | B | 1 | | C | 3 | | D | 1 | | E | 1 | +-----+----------+ 5 rows in set (0.00 sec) SELECT 컬럼명, COUNT(*) FROM 테이블명 GROUP BY 컬럼명 HAVING COUNT(*)>1; mysql> SELECT str, COUNT(*) FROM jmtable GROUP BY str HAVING COUNT(*)>1; +-----+----------+ | str | COUNT(*) | +-----+----------+ | A | 2 | | C | 3 | +-----+----------+ 2 rows in set (0.00 sec) 3 같이 보기[ | ]
[MS SQL] COUNT함수에서 distinct 사용하기, 중복된 값 제외하고 테이블 행 개수 세기 COUNT함수에서 distinct를 사용하여 중복된 값을 제외한 행의 개수를 세는 방법에 대해 알아보겠습니다. 다음 실습을 위해 실습 테이블을 만들었습니다. (+데이터 추가)
6개의 직업이 있습니다. { 사원 : 1, 주임 : 2, 대리 : 3, 과장: 4, 차장 : 5, 부장 :6 } count를 해보겠습니다. 실행 SQL SELECT COUNT(*) as t_c, COUNT(job) as jo_c, COUNT(job_no) as jo_no_c FROM 가직업
총 개수를 구하는 것은 확인했습니다. 하지만 중복되는 데이터들이 많았죠. 중복을 없앤 데이터들의 개수를 확인하는 명령을 만들겠습니다. COUNT() 함수에 DISTINCT 를 추가합니다. DISTINCT 연산자는 중복을 제거하는 연산자입니다. 실행 SQL SELECT COUNT(DISTINCT job) as job_count, COUNT(DISTINCT job_no) as jo_no_count FROM 가직업
job에서 중복된 데이터를 제거하고 개수를 세어 결과로 출력합니다. DISTINCT job DISTINCT job_no 이번 글에서는 COUNT함수와 DISTINCT 연산자를 사용하여 중복없는 데이터에 대해 개수 세는 방법을 알아봤습니다. |