teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

「平均点の高い上位3教科」を追加

2021/03/09 14:08

投稿

neko_the_shadow
neko_the_shadow

スコア2386

answer CHANGED
@@ -11,7 +11,9 @@
11
11
  UNION ALL SELECT '理科', 理科 FROM 成績
12
12
  UNION ALL SELECT '英語', 英語 FROM 成績
13
13
  ) AS T (教科, 点数)
14
- GROUP BY 教科;
14
+ GROUP BY 教科
15
+ ORDER BY AVG(点数) DESC
16
+ FETCH FIRST 3 ROWS ONLY;
15
17
  ```
16
18
 
17
19
  あるいは配列を使う方法もあります。
@@ -23,5 +25,7 @@
23
25
  FROM UNNEST(
24
26
  ARRAY['国語', '算数', '理科', '社会', '英語'],
25
27
  (SELECT ARRAY[AVG(国語), AVG(算数), AVG(理科), AVG(社会), AVG(英語)] FROM 成績)
26
- ) AS T (教科, 平均点);
28
+ ) AS T (教科, 平均点)
29
+ ORDER BY T.平均点 DESC
30
+ FETCH FIRST 3 ROWS ONLY;
27
31
  ```