Terry Very Good

[Mysql] 데이터가 업데이트 되지 않은 학과 찾기(SELECT dept, count(*) as num FROM [테이블명] WHERE [업데이트컬럼]='' GROUP BY dept HAVING num>3;) 본문

프로그래밍/(WEB) DB관리

[Mysql] 데이터가 업데이트 되지 않은 학과 찾기(SELECT dept, count(*) as num FROM [테이블명] WHERE [업데이트컬럼]='' GROUP BY dept HAVING num>3;)

테리베리 2021. 1. 10. 14:30
728x90
반응형

[상황]

대학교 User_info 테이블의 Email에 아무 내용이 없어서, 학과별로 정보를 받아서 추가했다.
업데이트 중에 발생한 에러로 학과당 이메일값 없는 학생이 3명이라고 가정하면,
이메일 값이 3개 이상 빈 학과는 업데이트 되지 않았다고 판단할 수 있다.
따라서 [학과]와 [이메일 미입력 학생 수]로 데이터가 업데이트 되지 않은 학과를 확인하려한다.

 

[구문]

1. 특정 컬럼 기준으로 데이터 수를 나열한다.

SELECT [특정컬럼명], count(*) FROM [테이블명] Group by [특정컬럼명];

2. 특정 컬럼 기준으로 데이터 수가 n개 이상인 것만 출력한다.

SELECT dept, count(*) as num FROM iqms.user_info GROUP BY dept HAVING num>1;

3. 특정 컬럼이 비어있거나 NULL인 데이터의 갯수를 출력한다.

SELECT count(*) FROM [테이블명] WHERE [특정 컬럼]='';
SELECT count(*) FROM [테이블명] WHERE [특정 컬럼] is NULL;

 

[설정]

1. [학과]와 [학과 학생 수]를 보여준다.

SELECT dept, count(*) FROM iqms.user_info Group by dept;

2. (적어도 3명 이상 있는) [학과]와 [학과 학생 수]를 보여준다.

SELECT dept, count(*) as num FROM iqms.user_info GROUP BY dept HAVING num>1;

3. (이메일이 비어있는 학생이) 적어도 3명 이상 있는 [학과]와 [학과 학생 수]를 보여준다.

SELECT dept, count(*) as num FROM iqms.user_info WHERE email='' GROUP BY dept HAVING num>1;
728x90
반응형