PostgreSQL の配列内の要素数をカウントするには、cardinality() 関数または array_length() 関数を使用できます。
配列内の要素の数を数えるには、次の 2 つの方法があります。
- cardinality(array): 配列内の要素の合計数を返します。
- array_length(array, 1): 指定された次元の要素数を返します (通常、1 次元配列の場合は 1)。
方法 1: cardinality() を使用して配列要素の数を数える
cardinality() 関数は、配列内の要素の合計数を返します。
SELECT cardinality(ARRAY['Bread', 'Butter', 'Jam']) AS element_count;
説明: 配列 {‘Bread’, ‘Butter’, ‘Jam’} には 3 つの要素があります。
出力:

方法 2: array_length() を使用して配列の要素数をカウントする
array_length() 関数は、配列の特定の次元に沿った要素の数を返します。1 次元配列の場合は、次元として 1 を指定します。
SELECT array_length(ARRAY['Bread', 'Butter', 'Jam'], 1) AS element_count;
説明: 配列 {‘Bread’, ‘Butter’, ‘Jam’} には 3 つの要素があります。
出力:

PostgreSQL の列の配列要素の数をカウントします。
テーブル名を「orders_arr_table」としましょう

PostgreSQL テーブルの order_items 列の要素数をカウントできます。
方法1: cardinality() 関数を使用して列の配列要素の数を数える
cardinality() 関数は、PostgreSQL テーブルの列内の要素の合計数を返します。
SELECT *, cardinality(order_items) AS item_count
FROM orders_arr_table;
説明: cardinality()関数は「order_items」列全体を取得し、その特定の列の要素の数をカウントします。
出力:

方法2: array_length() 関数を使用して列の配列要素の数を数える
array_length() 関数は、PostgreSQL テーブルの列内の要素の合計数を返します。
SELECT *, array_length(order_items,1) AS item_count
FROM orders_arr_table;
説明: array_length() 関数は、「order_items」列全体と、1次元配列を表す引数1を受け取り、その特定の列の要素数をカウントします。
出力:
