回答編集履歴
2
エイリアスの訂正
answer
CHANGED
@@ -20,10 +20,10 @@
|
|
20
20
|
, (array_agg(学部学科名 order by 開始日 desc))[1] as 学歴1:学部学科名
|
21
21
|
, (array_agg(開始日 order by 開始日 desc))[1] as 学歴1:開始日
|
22
22
|
, (array_agg(終了日 order by 開始日 desc))[1] as 学歴1:終了日
|
23
|
-
, (array_agg(学校名 order by 開始日 desc))[2] as 学歴
|
23
|
+
, (array_agg(学校名 order by 開始日 desc))[2] as 学歴2:学校名
|
24
|
-
, (array_agg(学部学科名 order by 開始日 desc))[2] as 学歴
|
24
|
+
, (array_agg(学部学科名 order by 開始日 desc))[2] as 学歴2:学部学科名
|
25
|
-
, (array_agg(開始日 order by 開始日 desc))[2] as 学歴
|
25
|
+
, (array_agg(開始日 order by 開始日 desc))[2] as 学歴2:開始日
|
26
|
-
, (array_agg(終了日 order by 開始日 desc))[2] as 学歴
|
26
|
+
, (array_agg(終了日 order by 開始日 desc))[2] as 学歴2:終了日
|
27
27
|
from ユーザテーブル t1 left join 学歴テーブル t2
|
28
28
|
on t1.id=t2.id
|
29
29
|
group by t1.id, ユーザ名, 性別, 生年月日
|
1
推敲
answer
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
最終学歴を新しい方から2つということであれば、
|
1
|
+
最終学歴を新しい方から2つということであれば、開始日または終了日の降順に並べればよいので、array_agg()の結果を添え字で1番目と2番目を取得すればOK。仮に学歴の登録が一つでも大丈夫です。
|
2
2
|
```SQL
|
3
3
|
select t1.*
|
4
4
|
, t2.agg1[1] as 学歴1:学校名, t2.agg2[1] as 学歴1:学部学科名, t2.agg3[1] as 学歴1:開始日, t2.agg4[1] as 学歴1:終了日
|