始める無料で始める

高収入のIT職向けのCTE

前の演習では、IT職を見つけるためのCTEを作成しました。ここでは、その結果を salary テーブルに対する別のCTEと組み合わせます。1つのクエリ内で複数のCTE定義を使います。CTEの定義同士はカンマで区切ることに注意してください。salary テーブルには、従業員の IDsalary に関する追加情報が入っています。あなたのタスクは、2つ目のCTE ITsalary を作成し、従業員の ID で両方のCTEを JOIN することです。JOIN では、両方のテーブルで値が一致するレコードのみを選択してください。最後に、3000 を超えて稼いでいる従業員だけを見つけます。

この演習はコースの一部です

SQL Server における階層型クエリと再帰クエリ

コースを見る

演習の手順

  • 2つ目のCTE ITsalary を、IDSalary のフィールドで定義します。
  • 3000 を超える給与を抽出します。
  • 一致する ID を使って2つのCTEを JOIN で結合し、該当する従業員の名前、給与、役職を選択します。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

WITH ITjobs (ID, Name, Position) AS (
    SELECT 
  		ID, 
  		Name,
  		Position
    FROM employee
    WHERE Position like 'IT%'),
    
-- Define the second CTE table ITsalary with the fields ID and Salary
___ (___, ___) AS (
    SELECT
        ID,
        Salary
    FROM Salary
  	-- Find salaries above 3000
    WHERE ___ ___ 3000)
    
SELECT 
	ITjobs.NAME,
	ITjobs.POSITION,
    ITsalary.Salary
FROM ITjobs
    -- Combine the two CTE tables the correct join variant
    ___ ___ ITsalary
    -- Execute the join on the ID of the tables
    ON ITjobs.ID = ITsalary.ID;
コードを編集して実行