秒あり?それともなし?
動画では、DATEDIFF() を使って開始時刻と終了時刻の差から走行時間を計算する方法を見ました。ただし、トランザクションに秒が含まれているかどうかは、どのように確認すればよいでしょうか?
ここでは、DATEPART() を使って、秒が 0 より大きいトランザクションはいくつあるか、秒が 0 のトランザクションはいくつあるかを確認します。そうすれば、妥当なデータかどうかを評価できます。CASE 文を使って、データセットを2つのカテゴリに分けます。
この演習はコースの一部です
SQL Server における関数とストアドプロシージャの作成
演習の手順
- 最初の
CASE文を完成させ、DATEPART()を使ってStartDateのSECONDの部分を評価してください。 - 同じ方法で、
GROUP BY内の2つ目のCASE文も完成させてください。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
SELECT
-- Count the number of IDs
COUNT(ID) AS Count,
-- Use DATEPART() to evaluate the SECOND part of StartDate
"StartDate" = CASE WHEN ___(___, ___) = 0 THEN 'SECONDS = 0'
WHEN ___(___, ___) > 0 THEN 'SECONDS > 0' END
FROM CapitalBikeShare
GROUP BY
-- Use DATEPART() to Group By the CASE statement
CASE WHEN ___(___, ___) = 0 THEN 'SECONDS = 0'
WHEN ___(___, ___) > 0 THEN 'SECONDS > 0' END