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

回答編集履歴

2

エイリアスの訂正

2018/06/19 01:21

投稿

sazi
sazi

スコア25430

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 学歴:学校名
24
- , (array_agg(学部学科名 order by 開始日 desc))[2] as 学歴:学部学科名
24
+ , (array_agg(学部学科名 order by 開始日 desc))[2] as 学歴:学部学科名
25
- , (array_agg(開始日 order by 開始日 desc))[2] as 学歴:開始日
25
+ , (array_agg(開始日 order by 開始日 desc))[2] as 学歴:開始日
26
- , (array_agg(終了日 order by 開始日 desc))[2] as 学歴:終了日
26
+ , (array_agg(終了日 order by 開始日 desc))[2] as 学歴:終了日
27
27
  from ユーザテーブル t1 left join 学歴テーブル t2
28
28
  on t1.id=t2.id
29
29
  group by t1.id, ユーザ名, 性別, 生年月日

1

推敲

2018/06/19 01:21

投稿

sazi
sazi

スコア25430

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:終了日