ある電子商取引サイトでは、会員の属性を柔軟に変更できるように、“会員項目”表で管理することにした。 “会員項目”表に対し、次の条件でSQL文を実行して結果を得る場合、SQL文のaに入れる字句はどれか。 ここで、実線の下線は主キーを、NULLは値がないことを表す。
[条件] | |
(1) | 同一“会員番号”を持つ複数の行によって、一人の会員の属性を表す。 |
(2) | 新規に追加する行の番号は、最後に追加された行の行番号に1を加えた値とする。 |
(3) | 同一“会員番号”で同一“項目名”の行が複数ある場合、より大きい行番号の項目値を採用する。 |
会員項目
|
||||||||||||||||||||||||||||
[SQL文]
SELECT 会員番号,
a (CASE WHEN 項目名 = ‘会員名’ THEN 項目値 END) AS 会員名
a (CASE WHEN 項目名 = ‘最終購入年月日’ THEN 項目値 END)
AS 最終購入年月日
FROM ( SELECT 会員番号, 項目名, 項目値 FROM 会員項目
WHERE 行番号 IN ( SELECT a (行番号) FROM 会員項目
GROUP BY 会員番号, 項目名 )
ア | COUNT |
イ | DISTINCT |
ウ | MAX |
エ | MIN |
答え ウ
【解説】
条件の(3)に「同一“会員番号”で同一“項目名”の行が複数ある場合、より大きい行番号の項目値を採用する」とあるのでaに入るのは同一“会員番号”で同一“項目名”のときに項目値の最大を返すMAX(ウ)になります。
【キーワード】
・SQL文の集合関数