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

回答編集履歴

2

修正

2018/04/23 02:42

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -1,5 +1,5 @@
1
1
  仮に可変で取り出せたとして、どのように利用するのですか?
2
- カラムが可変で返却されるselect結果を利用する場合、結局カラムの情を判断する必要があるでしょうから、
2
+ カラムが可変で返却されるselect結果を利用する場合、結局カラムの情を判断する必要があるでしょうから、
3
3
  select結果を利用する際に配列型を扱えるようなら、[array_agg()](https://www.postgresql.jp/document/9.4/html/functions-aggregate.html)の利用をお薦めします。
4
4
 
5
5
  ```SQL

1

追記

2018/04/23 02:42

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -8,6 +8,7 @@
8
8
  group by 従業員番号
9
9
  ```
10
10
  array_agg()はdistinctやorder byも指定できますし、配列の要素数は[array_length()](https://www.postgresql.jp/document/9.4/html/functions-array.html)で求めることができます。
11
+
11
12
  ```SQL
12
13
  select *, array_length(申請日リスト, 1) as 申請件数
13
14
  from (
@@ -15,4 +16,5 @@
15
16
  from 申請テーブル
16
17
  group by 従業員番号
17
18
  ) agg_list
18
- ```
19
+ ```
20
+ ※array_length()の説明のために記述しただけで、単に件数を求めるのにはcount()を使用すればよくネストさせる必要はありません。また、他にも配列を扱う色々な関数があります。