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 つの要素があります。

出力:

PostgreSQLの配列要素の数を数える 1

方法 2: array_length() を使用して配列の要素数をカウントする

array_length() 関数は、配列の特定の次元に沿った要素の数を返します。1 次元配列の場合は、次元として 1 を指定します。

SELECT array_length(ARRAY['Bread', 'Butter', 'Jam'], 1) AS element_count;

説明: 配列 {‘Bread’, ‘Butter’, ‘Jam’} には 3 つの要素があります。

出力:

PostgreSQLの配列要素の数を数える 2

PostgreSQL の列の配列要素の数をカウントします。

テーブル名を「orders_arr_table」としましょう         

PostgreSQLの配列要素の数を数える 3

PostgreSQL テーブルの order_items 列の要素数をカウントできます。

方法1: cardinality() 関数を使用して列の配列要素の数を数える

cardinality() 関数は、PostgreSQL テーブルの列内の要素の合計数を返します。

SELECT *, cardinality(order_items) AS item_count
FROM orders_arr_table;

説明:  cardinality()関数は「order_items」列全体を取得し、その特定の列の要素の数をカウントします。

出力:

PostgreSQLの配列要素の数を数える 4

方法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を受け取り、その特定の列の要素数をカウントします。

出力:

PostgreSQLの配列要素の数を数える 5