[SQL Runday] HackerRank - Placements


学生の中で、自分より年収の高い学生の名前をリストするクエリーを書きます.
  • 親友が提案した年俸順
  • 同じ年俸提案を受けていない学生
  • Table


    Students, Friends, Packages

    Key points


  • 重複する外部キーテーブルを連続的に横に、横に貼り付けるという解決しやすい問題です.

  • Friendsテーブルを基準に3回連続left joinで解決できます.
  • select * from Friendsの出力

  • 左クリックで学生表に接続し、IDの名前を取得します.

  • 給料表にサインして、自分の標準的な給料をもらいました.

  • 給料表にサインし直して、友達の給料を取ります.

  • 最後に、whereの条件の下で、私の友达が私より多くの状況を受け取った場合に限って検索します.

  • 友人の年俸を基準に並べ替えます.△ちょっと悲しいです.
  • 最終クエリー

    select s.name
    from friends f
    left join students s on s.id = f.id
    left join packages p on p.id = s.id
    left join packages p1 on f.friend_id = p1.id
    where p1.salary > p.salary
    order by p1.salary