728x90
반응형
문제
<학생> 테이블을 대상으로 '요구사항'을 적용하여 아래 <결과> 테이블과 같이 출력하는 SQL문을 작성하시오.
1. <학생> 테이블
2. <결과> 테이블
3. 요구사항
- WHERE 구문을 사용하지 않는다.
- GROUP BY구문과 집계 함수를 사용해야 한다.
- 별칭(AS)을 사용해야 한다.
- 인용 문구를 사용시 작은따옴표(') 서용 가능합니다.
- 대소문자를 구분하지 않는다.
- 세미콜론(;)은 생략 가능하다.
정답
SELECT
학과, COUNT(*) AS 학과별튜플수
FROM 학생
GROUP BY 학과
반응형
해설
📌 기본 구문 개념
[ 참고 ]
▼ SQL 기본 구문 정리 select from where and/or group by having order by ▼
[정보처리기사] SQL 문법(구문) | SQL 기본 구문 정리 select from where and/or group by having order by
📌 SQL 기본 쿼리 형식SQL 기본 쿼리 형식 (종합) : SELECT 컬럼1, 컬럼2, 집계함수(컬럼명) AS 별칭FROM 테이블명WHERE 조건1 AND 조건2 OR 조건3GROUP BY 그룹화할_컬럼HAVING 집계함수_조건ORDER BY 정렬할_컬럼
august-jhy.tistory.com
1️⃣ SELECT 구문
SELECT 형식 :
SELECT 컬럼1, 컬럼2, ..., 집계함수(컬럼명) AS 별칭
FROM 테이블명
- SELECT 구문에서는 조회할 컬럼이나 계산식을 지정합니다.
여러 개의 컬럼을 조회할 때는 쉼표로 구분합니다.
집계 함수(SUM, MIN, MAX, AVG 등)를 사용하여 계산된 값을 구할 수 있으며,
AS를 통해 별칭을 지정할 수 있습니다. - FROM은 데이터를 조회할 테이블을 지정합니다.
COUNT() 함수 형식 :
SELECT COUNT(*) FROM 테이블명;
SELECT COUNT(컬럼명) FROM 테이블명;
- SQL에서 COUNT() 함수는 테이블 또는 그룹 내에서 행의 개수를 계산하는 데 사용되는 집계 함수입니다.
- COUNT(*)는 테이블의 모든 행을 계산합니다. NULL 값을 포함한 모든 행의 개수를 반환합니다.
- COUNT(컬럼명)은 특정 열에서 NULL이 아닌 값만 계산합니다. NULL 값은 무시되며, 비어 있지 않은 데이터만 포함됩니다.
AS 형식 :
SELECT 컬럼명 또는 계산식 AS 별칭명
FROM 테이블명
- SQL에서 별칭(Alias)은 테이블이나 컬럼에 임시 이름을 지정하는 기능으로, AS 키워드를 사용해 작성합니다.
AS 키워드를 통해 컬럼 또는 테이블에 임시 이름을 지정하며, 이를 통해 쿼리의 가독성과 결과의 명확성을 높일 수 있습니다.
ORDER BY 형식 :
SELECT 컬럼1, 컬럼2, ...
FROM 테이블명
ORDER BY 정렬할_컬럼 [ASC | DESC];
- ORDER BY는 SQL에서 결과 데이터를 정렬하는 데 사용되는 구문입니다.
- 정렬 기준이 되는 열(정렬할_컬럼)을 지정하고, ASC(오름차순) 또는 DESC(내림차순)를 선택하여 정렬 순서를 정의합니다
- ASC: 기본값으로 작은 값 → 큰 값 순서로 정렬. DESC: 큰 값 → 작은 값 순서로 정렬.
728x90
2️⃣ GROUP BY 구문
GROUP BY 형식 :
SELECT 컬럼1, 집계함수(컬럼2), ...
FROM 테이블명
GROUP BY 그룹화할_컬럼
HAVING 조건;
- GROUP BY는 쿼리의 SELECT에서 집계 함수가 사용될 때 반드시 필요한 구문입니다. GROUP BY는 주로 집계 함수(MIN 최소 값, MAX 최대 값, AVG 평균 값 등)를 사용할 때 함께 활용됩니다.
- 데이터를 특정 컬럼으로 그룹화하면, 같은 값을 가진 데이터들이 하나의 그룹으로 묶입니다. 이 문제에서는 학과 열을 기준으로 그룹화하였습니다. 따라서 동일한 학과 값을 가진 데이터들이 한 그룹으로 묶입니다.
- HAVING 구문은 WHERE과 유사하지만, 그룹화된 데이터에 조건을 걸기 위해 사용됩니다. 주로 집계 함수의 결과를 필터링하는 데 쓰입니다.
- 일반적으로 WHERE 절은 개별 행을 필터링할 때 사용되지만, HAVING은 집계 결과에 대한 조건을 적용하는 데 사용됩니다.
📌 요구사항 분석 :
- WHERE 절 없이 처리:
- WHERE 절은 특정 조건으로 데이터를 필터링하는 데 사용되지만, 여기서는 사용하지 않습니다.
- 모든 데이터를 그룹화하고 집계해야 합니다.
- GROUP BY 구문과 집계 함수 사용:
- GROUP BY: 특정 열(여기서는 학과)의 값을 기준으로 데이터를 그룹화.
- 집계 함수: 각 그룹의 데이터를 계산. 여기서는 COUNT()를 사용하여 학과별 학생 수를 계산합니다.
- 별칭(AS) 사용:
- 출력 열에 명확한 이름을 지정하기 위해 AS를 사용합니다.
- 예: COUNT(*) AS 학과별튜플수
📌 문제 해설
이 SQL문은 다음과 같은 작업을 수행합니다:
- 학생 테이블에서 학과별로 데이터를 그룹화(GROUP BY 학과).
- 각 그룹에 속한 데이터 개수를 계산(COUNT(*))
- 출력 열은 학과와 학과별튜플수로 표시.
1️⃣ SELECT 학과, COUNT(*) AS 학과별튜플수
- SELECT: 결과로 출력할 열(column)을 지정합니다.
- 여기서는 학과와 COUNT(*)를 선택합니다.
- 학과:
- 학생 테이블에서 "학과" 열을 가져옵니다.
- 이 열은 그룹화(Grouping)의 기준이 되며, 결과 테이블에도 포함됩니다.
- COUNT(*):
- 각 그룹(학과)에 포함된 행(row)의 개수를 계산합니다.
- *는 해당 행에 있는 모든 열을 대상으로 개수를 셉니다.
- 예를 들어, 학과가 "컴퓨터"인 데이터가 2개 있으면 결과는 2가 됩니다.
- AS 학과별튜플수:
- COUNT(*)의 결과 열에 별칭을 붙입니다.
- 결과 테이블에서는 이 열이 "학과별튜플수"라는 이름으로 표시됩니다.
2️⃣ FROM 학생
- FROM: 데이터를 가져올 테이블을 지정합니다.
- 여기서는 학생 테이블이 대상입니다.
3️⃣ GROUP BY 학과
- GROUP BY: 데이터를 그룹화(Grouping)합니다.
- 여기서는 학과 열을 기준으로 그룹화됩니다.
- 동일한 학과 값을 가진 데이터들이 한 그룹으로 묶입니다.
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
728x90
반응형
'코딩일기 > 자격증' 카테고리의 다른 글
[정보처리기사] 블록체인(Blockchain) | SW 신기술 및 관련 용어 | 정보처리기사 실기 기출문제 (0) | 2024.12.10 |
---|---|
[정보처리기사] 프로세스 상태 전이 | 정보처리기사 실기 기출문제 (0) | 2024.12.10 |
[정보처리기사] 데이터베이스 장애와 회복 기법 | 정보처리사 실기 기출 (0) | 2024.12.02 |
[정보처리기사]| 생성자(Constructor) | 2020년 3회 정보처리기사 실기 기출문제 (0) | 2024.11.25 |
[정보처리기사] [Java] while문과 continue의 활용| continue와 break의 차이점 | 2020년 3회 정보처리기사 실기 기출문제 (0) | 2024.11.23 |