목차
목차1. sql이란2. sql 기본구조3. 테이블 만들기4. 기존 그래프를 가져와서 테이블 만들기5. 데이터 입력하기6. 평균, 분산, 간단한 숫자 세기7. 새 칼럼 이름 부여8. AND와 OR9. 데이터 정렬10. 그룹별로 연산
1. sql이란
데이터베이스 관리 시스템에서 데이터를 관리하기 위해 사용하는 프로그래밍 언어입니다.
2. sql 기본구조
sql 기본 구조
sql 기본 구조
주의사항 : WHERE 과 GROUP BY 의 순서가 뒤바뀐다면 에러가 나게 됩니다.
3. 테이블 만들기

4. 기존 그래프를 가져와서 테이블 만들기

5. 데이터 입력하기
TABLE2를 가져와 새로운 데이터를 입력하도록 하겠습니다.
1) 매 행마다 입력할 칼럼명을 지정합니다.

데이터를 입력할 칼럼을 지정하지 않으므로, 칼럼수만큼 데이터가 없을 경우 에러가 발생하게 됩니다.
2) 누락값이 있더라도 VALUE명령어를 사용하여 입력하는 방법입니다.

사칙연산 사용하는 방법입니다.

+(더하기), -(뺄셈), *(곱하기), /(나누기)
사칙연산을 이용하실 수 있습니다.6. 평균, 분산, 간단한 숫자 세기
SUM(XXX,YYY): 칼럼XXX와 YYY의 값을 모두 더하는 것입니다.
MEAN(XXX): 칼럼XXX의 평균값을 구합니다.
MIDIAN(XXX): 칼럼XXX의 중앙값을 구합니다.
MIN(XXX): 칼럼XXX에서 가장 작은 값을 구합니다.
MAX(XXX): 칼럼XXX에서 가장 큰 값을 구합니다.
VAR(XXX): 칼럼XXX의 분산을 구합니다.
STD(XXX): 칼럼XXX의 표준편차를 구합니다.

다음으로
SUM(HEIGHT,WEIGHT)을 보겠습니다. 칼럼 TEMA001이 생성됐습니다. 각 행에서 칼럼HEIGHT와 칼럼WEIGHT를 더합니다. 그래서 각각의 행이 값이 다릅니다. 다만 특이점이 우리는 분명 SELECT명령어에서 변수HEIGHT와 WEIGHT를 선택하지 않았다는 점입니다.여기서 SQL명령어의 특징을 볼 수 있습니다.
우리가 SELECT로 칼럼WEIGHT을 표현하지 않더라도, FROM 테이블에 칼럼WEIGHT가 있을 경우, SQL은 이를 인식하고 계산합니다.
SELECT명령어는 칼럼을 표현할지 말지를 결정하는 역할만을 하는 셈입니다.
7. 새 칼럼 이름 부여

특정 데이터 추출하는 방법입니다.

8. AND와 OR

9. 데이터 정렬

오름차순으로 정렬된 것을 확인할 수 있습니다.
ORDER BY 구문을 통해서 정렬을 할 때 칼럼AGE만 바뀌는 게 아니라 전체 칼럼이 모두 함께 이동합니다.내림차순으로 정렬을 하려면 ‘ORDER BY AGE DESC'를 사용합니다.`
여러 개 칼럼을 동시에 정렬하는 방법입니다.
' , '를 사용하여 변수를 구분해줍니다.10. 그룹별로 연산
클래스를 그룹으로 묶에 반별로 score 점수를 내고 변수명은 sum_score으로 지정해 주었습니다.

그룹별 특정 데이터 추출하는 방법입니다.
GROUP BY : 명령어로 생성된 값에서 특정 조건을 만족하는 행만을 추출합니다.
만약 GROUP BY명령어 다음에 WHERE명령어를 쓸 경우 에러가 발생합니다.
그렇다고 GROUP BY명령어 앞쪽에 WHERE명령어를 사용하는 경우에도 에러가 발생합니다.
GROUP BY명령어 다음에는 반드시
HAVING명령어가 나와야 하기 때문입니다. 이는 SAS SQL의 문법규칙입니다.왜냐하면 sum_score는 기존 테이블에는 존재하지 않는 데이터이기 때문입니다.
sum_score는 SQL명령어에 의해서 생성됐습니다.
WHERE 명령어는 SQL명령어에 의해 새로 생성된 칼럼은 고려하지 않습니다.
오직 FROM으로 불러온 테이블에 sum_score가 존재하는지 확인합니다.
테이블에 sum_score가 없으므로 해당 명령어는 에러가 발생하게 됩니다.
만약 이를 에러없이 수행하고 싶다면 아래와 같이 Group By 절 다음 Having 절을 사용하여 조건을 지정해야 합니다.
HAVING명령어는 SQL명령어에 의해 생성되고 계산된 후의 모든 칼럼을 대상으로 명령을 수행하기 때문입니다.
이렇게 해서 sas를 이용한 sql문을 마치도록 하겠습니다. 다른 sql문도 sql 기본구조 안에 넣으면 활용할 수 있습니다.