2024年 秋期 応用情報技術者 午前 問30

“成績”表に対して、SQL文1と同一の結果を得るために、SQL文2のaに入れる字句はどれか。

[SQL文1]
SELECT R1.学生番号, R1.実施回, R1.得点 FROM 成績 R1
   INNER JOIN
   (SELECT 学生番号, MIN(実施回) AS 初回 FROM 成績
      GROUP BY 学生番号) R2
   ON R1.学生番号 = R2.学生番号
   AND R1.実施回 = R2.初回

[SQL文2]
SELECT 学生番号, 実施回, 得点
   FROM (SELECT 学生番号, 実施回, ROW_NUMBER() OVER(  a  ) AS 番号
      FROM 成績) R1
   WHERE R1.番号 = 1

 ア  ODER BY 学生番号, 実施回
 イ  PARTITION BY 学生番号 ODER BY 実施回
 ウ  PARTITION BY 学生番号 ODER BY 得点 ASC
 エ  PARTITION BY 学生番号 ODER BY 得点 DSEC


答え イ


解説
SQL文1から学生番号ごとの最も小さな実施回とその時の得点を表示する内容になっている。
これと同じ動作をSQL文2で実現するためにaに入るのは「PARTITION BY 学生番号 ODER BY 実施回」(イ)になる。

SELECT 学生番号, 実施回, 得点
   FROM (SELECT 学生番号, 実施回, ROW_NUMBER()
      OVER(PARTITION BY 学生番号 ODER BY 実施回) AS 番号 FROM 成績) R1
   WHERE R1.番号 = 1


キーワード
・INNER JOIN

キーワードの解説
  • INNER JOIN(内部結合)
    お互いのテーブルから共通点を探してそれらを結びつけることです。

もっと、「INNER JOIN」について調べてみよう。

戻る 一覧へ 次へ