Hot Deck を使った平日の論理化
曜日ごとに、総距離あたりの総運賃額を計算します。TripDistance が 0 の場合は、本章で作成した Hot Deck 補完関数を使用してください。
この演習はコースの一部です
SQL Server における関数とストアドプロシージャの作成
演習の手順
DATENAME()とPickupDateを使って曜日を取得します。AVG()を使ってTripDistanceあたりのTotalAmountを計算し、CASEステートメントでTripDistanceが0より大きい場合はその値を、そうでなければdbo.GetTripDistanceHotDeck()を使うようにします。PickupDateの曜日で並べ替え、'Monday'が最初に来るようにします。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
SELECT
-- Select the pickup day of week
DATENAME(weekday, PickupDate) as DayofWeek,
-- Calculate TotalAmount per TripDistance
CAST(AVG(TotalAmount/
-- Select TripDistance if it's more than 0
CASE WHEN TripDistance > 0 THEN TripDistance
-- Use GetTripDistanceHotDeck()
ELSE dbo.GetTripDistanceHotDeck() END) as decimal(10,2)) as 'AvgFare'
FROM YellowTripData
GROUP BY DATENAME(weekday, PickupDate)
-- Order by the PickupDate day of week
ORDER BY
___ ___ ___(weekday, PickupDate) = '___' THEN 1
___ ___(weekday, PickupDate) = '___' THEN 2
___ ___(weekday, PickupDate) = '___' THEN 3
___ ___(weekday, PickupDate) = '___' THEN 4
___ ___(weekday, PickupDate) = '___' THEN 5
___ ___(weekday, PickupDate) = '___' THEN 6
___ ___(weekday, PickupDate) = '___' THEN 7
END ASC;