코스 소개

SQL Server에서 함수와 저장 프로시저 작성하기

Meghan Kwartler

IT Consultant

코스 목표

  • SQL 날짜 함수를 사용한 시계열 탐색적 데이터 분석(EDA) 수행
  • 사용자 정의 함수 생성, 수정, 실행
  • 저장 프로시저 생성, 수정, 실행
  • 선수 과목
    • SQL Server 입문
    • SQL 데이터 조인
    • SQL Server 중급
SQL Server에서 함수와 저장 프로시저 작성하기

시계열 EDA

  • 트랜잭션 데이터셋
    • CapitalBikeShare
    • YellowTripTaxi
  • 탐색적 데이터 분석(EDA) 프로세스
    • 반복적
    • EDA 질문에 대한 특정 체크리스트 없음
    • 호기심을 가지세요!
    • 재작업 노력 감소

EDA 시각화

SQL Server에서 함수와 저장 프로시저 작성하기

EDA를 위한 SQL 함수

-- CONVERT Syntax:  
CONVERT ( data_type [ ( length ) ] , expression [ , style ] )  
-- Returns expression based on data_type
-- DATEPART Syntax
DATEPART ( datepart , date ) 
-- Returns int
-- DATENAME Syntax
DATENAME ( datepart , date ) 
-- Returns nvarchar
-- DATEDIFF Syntax
DATEDIFF ( datepart , startdate , enddate ) 
-- Returns int; can't use datepart weekday value
-- datepart values = year, quarter, month, dayofyear, day, week, weekday, hour, 
-- minute, second, microsecond, nanosecond
SQL Server에서 함수와 저장 프로시저 작성하기
-- CONVERT
SELECT 
  TOP 1 PickupDate, 
  CONVERT (DATE, PickupDate) AS DateOnly 
FROM YellowTripData
+-----------------------------+------------+
| PickupDate                  | DateOnly   |
|-----------------------------+------------|
| 2017-01-09 11:52:13.0000000 | 2017-01-09 |
+-----------------------------+------------+
SQL Server에서 함수와 저장 프로시저 작성하기
-- DATEPART
SELECT 
  TOP 3 COUNT(ID) AS NumberofRides, 
  DATEPART(HOUR, PickupDate) AS Hour 
FROM YellowTripData 
GROUP BY DATEPART(HOUR, PickupDate) 
ORDER BY COUNT(ID) DESC
+----------------------+
| NumberOfRides | Hour |
|----------------------+
| 616281        | 18   |
| 616281        | 19   |
| 540629        | 17   |
+---------------+------+
SQL Server에서 함수와 저장 프로시저 작성하기
--DATENAME
SELECT 
  TOP 3 ROUND(
    SUM(FareAmount), 
    0
  ) as TotalFareAmt, 
  DATENAME(WEEKDAY, PickupDate) AS DayofWeek 
FROM YellowTripData 
GROUP BY DATENAME (WEEKDAY, PickupDate) 
ORDER BY SUM(FareAmount) DESC;
+--------------------------+
| TotalFareAmt | DayofWeek |
|--------------------------+
| 19026645     | Sunday    |
| 18749482     | Tuesday   |
| 17213351     | Thursday  |
+--------------+-----------+
SQL Server에서 함수와 저장 프로시저 작성하기
--DATEDIFF
SELECT 
  AVG(
    DATEDIFF(SECOND, PickupDate, DropOffDate)/ 60
  ) AS AvgRideLengthInMin 
FROM YellowTripData 
WHERE DATENAME(WEEKDAY, PickupDate) = 'Sunday';
+--------------------+
| AvgRideLengthInMin |
|--------------------+
| 13                 |
+--------------------+
SQL Server에서 함수와 저장 프로시저 작성하기

연습해 봅시다!

SQL Server에서 함수와 저장 프로시저 작성하기

Preparing Video For Download...