--use zip
--Select *From dbo.zip
--Select LEN(Gu) From dbo.zip
--[1]테이블 생성
-- 삭제 하기 위해 다음과 같이 명령어 사용
-- Drop Table Customers
Create Table dbo.Customers
(
Num Int Identity(1,1) Primary Key,
Name VarChar(25) Not Null,
Age Int Null,
Address VarChar(100)
)
Go
--[2]샘플 데이터 입력
Insert Customers Values('홍길동','21','서울')
Insert Customers Values('백두산','31','서울')
Insert Customers Values('한라산','41','부산')
Insert Customers Values('지리산','21','부산')
Insert Customers Values('설악산','31','대전')
--select문 주요 기능
--전체 고객 리스트
Select *From Customers
--[2-1]중복제거(Distinct) : 고객들이 사는 지역을 중복없이 출력
Select Distinct Address From Customers
--[2-2] Group By : 집계함수 그룹화 : 같은 지역 고객의 나이 평균
Select Address, AVG(Age) From Customers
Group By Address
--[2-3] 조건이 있는 집계함수 그룹화 :
-- 같은 지역 고객 중 나이가 40이상인 고객의 나이의 평균
Select Address, AVG(Age) From Customers
Where Age >= 40
Group By Address
--Group By All : 위 쿼리문 중 조건에 맞지 않아도 지역 리스트 출력
Select Address, AVG(Age) From Customers
Where Age > 40
Group By All Address
--[2-4] Having : 집계함수에 대한 조건처리
-- 같은 지역 고객의 나이의 평균이 30이상인 데이터만 출력
Select Address, AVG(Age) As 나이평균 From Customers
Group By Address
Having AVG(Age) >= 30
--[2-5] RollUp : 소계 : 지역별 나이를 출력 후 나의 소계 (중간합계)
Select Address, AVG(Age) From Customers
Group By Address With RollUp
--[2-6] Cube : 소계 : 지역별 나이를 출력 후 나의 소계
Select Address, AVG(Age) From Customers
Group By Address With Cube
--[2-7] Grouping() 함수 : RollUp/Cube 사용시 그룹화 된 항목인지 표시
Select Address, AVG(Age), GROUPING(Address) As 그룹화여부
From Customers
Group By Address With Cube
--[2-8] Compute : 출력 결과에 대한 집계
Select Address, Age From Customers
Compute SUM(Age), AVG(Age)
--[2-9] Compute by : 출력결과에 대한 집계에 대한 정렬
Select Address, Age From Customers Order By Address
Compute Sum(Age), Avg(Age) By Address
--[2-10] Case : 문장 대체
Select Name, Age, Address From Customers
Select Name, Age,
Address =
Case Address
When '서울' Then 'Seoul'
When '부산' Then 'Busan'
Else '다른지역'
End
From Customers
|