All Products
Search
Document Center

Hologres:Fungsi array

Last Updated:Feb 15, 2026

Hologres kompatibel dengan PostgreSQL dan mendukung sintaks standar PostgreSQL. Topik ini menjelaskan fungsi array (ARRAY) yang didukung oleh Hologres beserta kasus penggunaannya.

Function

Feature

ARRAY_AGG

Mengagregasi data dari beberapa baris dalam suatu kolom menjadi sebuah array.

ARRAY_APPEND

Menambahkan elemen ke akhir array.

ARRAY_CAT

Menggabungkan dua array.

ARRAY_CONTAINS

Memeriksa apakah suatu array berisi nilai tertentu.

ARRAY_DIMS

Mengambil jumlah dimensi dari tipe array teks.

ARRAY_DISTINCT

Menghapus elemen duplikat dari array.

ARRAY_EXCEPT

Mengambil array yang tidak berisi elemen array tertentu.

ARRAY_LENGTH

Mengembalikan panjang dimensi array tertentu.

ARRAY_LOWER

Mengembalikan batas bawah dimensi array tertentu.

ARRAY_MAX

Mengembalikan nilai maksimum dari semua elemen dalam array. Nilai NULL dilewati selama proses ini.

ARRAY_MIN

Mengembalikan nilai minimum dari semua elemen dalam array.

ARRAY_NDIMS

Mengembalikan jumlah dimensi array.

ARRAY_REMOVE

Menghapus semua elemen yang sama dengan nilai tertentu dari array satu dimensi.

ARRAY_POSITIONS

Mengembalikan subskrip elemen tertentu dalam array satu dimensi.

ARRAY_PREPEND

Menambahkan elemen ke awal array.

ARRAY_SORT

Mengurutkan elemen-elemen array.

ARRAY_TO_STRING

Menggabungkan elemen-elemen array menggunakan pemisah tertentu. Anda dapat menentukan string untuk merepresentasikan nilai NULL.

ARRAY_UNION

Menggabungkan dua array menjadi array baru dan menghapus elemen duplikat.

ARRAY_UPPER

Mengembalikan batas atas dimensi array tertentu.

REGEXP_MATCH

Mencocokkan string terhadap ekspresi reguler dan mengembalikan hasil pencocokan dalam bentuk array.

REGEXP_SPLIT_TO_ARRAY

Memisahkan string berdasarkan ekspresi reguler dan mengonversi hasilnya menjadi array.

UNNEST

Memperluas setiap elemen array menjadi baris terpisah.

Batasan

Fungsi array_max, array_min, array_contains, array_except, array_distinct, dan array_union tidak mendukung kueri konstan. Contohnya: SELECT array_max(ARRAY[-2, NULL, -3, -12, -7]);.

Fungsi array

ARRAY_TO_STRING

  • Deskripsi: Menggabungkan elemen-elemen array menggunakan pemisah tertentu. Anda dapat menentukan string untuk merepresentasikan nilai NULL dalam array.

    array_to_string(anyarray, text[, text])
  • Deskripsi Parameter

    • anyarray: Array yang elemennya ingin digabungkan.

    • text (parameter kedua): String yang digunakan sebagai pemisah.

    • text (parameter ketiga, opsional): String yang digunakan untuk merepresentasikan nilai NULL. Jika parameter ini tidak ditentukan, nilai NULL diabaikan.

  • Nilai kembalian

    Mengembalikan nilai TEXT.

  • Contoh

    -- Hasilnya adalah 1,2,3
    SELECT array_to_string(ARRAY[1, 2, 3], ',')

ARRAY_AGG

  • Deskripsi: Mengagregasi data dari beberapa baris dalam suatu kolom menjadi array.

    • Metode 1:

      array_agg(anyelement)

      Deskripsi parameter

      • anyelement: Kolom atau ekspresi yang akan diagregasi.

      Catatan penggunaan:

      • Tipe data DECIMAL, DATE, TIMESTAMP, dan TIMESTAMPTZ hanya didukung di Hologres V1.3 dan versi yang lebih baru.

        Catatan

        Jika instans Hologres Anda merupakan versi sebelumnya, upgrade instans Anda atau bergabunglah dengan grup DingTalk Hologres untuk memberikan masukan. Untuk informasi lebih lanjut, lihat Peningkatan instans atau Bagaimana cara mendapatkan dukungan online tambahan?.

      • Tipe JSON, JSONB, TIMETZ, INTERVAL, INET, OID, UUID, dan ARRAY tidak didukung.

    • Metode 2:

      array_agg (expression[ order_by_clause ] ) [ FILTER ( WHERE filter_clause ) ]

      Deskripsi parameter

      • expression: Ekspresi yang akan diagregasi.

      • order_by_clause (opsional): Klausul ORDER BY yang menentukan urutan pengurutan untuk agregasi.

      • filter_clause (opsional): Kondisi filter untuk klausa FILTER. Hanya baris yang memenuhi kondisi yang disertakan dalam agregasi.

      Catatan penggunaan:

      Klausul FILTER hanya didukung di Hologres V1.3 dan versi yang lebih baru.

      Catatan

      Jika instans Hologres Anda merupakan versi sebelumnya, upgrade instans Anda atau bergabunglah dengan grup DingTalk Hologres untuk memberikan masukan. Untuk informasi lebih lanjut, lihat Peningkatan instans atau Bagaimana cara mendapatkan dukungan online tambahan?.

  • Nilai kembalian

    Mengembalikan nilai ARRAY.

  • Contoh

    • Contoh 1 (array_agg(anyelement))

      CREATE TABLE test_array_agg_int (
          c1 int
      );
      
      INSERT INTO test_array_agg_int
          VALUES (1), (2);
      
      SELECT
          array_agg (c1)
      FROM
          test_array_agg_int;

      Hasil berikut dikembalikan.

       array_agg
      -----------
       {2,1}
      (1 row)
    • Contoh 2 (FILTER):

      CREATE TABLE test_array_agg_int (
          c1 int
      );
      
      INSERT INTO test_array_agg_int
          VALUES (1), (2);
      
      SELECT
          array_agg (c1) filter (where c1 >1)
      FROM
          test_array_agg_int;

      Hasil berikut dikembalikan.

       array_agg
      -----------
       {2}
      (1 row)

ARRAY_APPEND

  • Deskripsi: Menambahkan elemen ke akhir array.

    array_append(anyarray, anyelement)
  • Deskripsi Parameter

    • anyarray: Array sumber.

    • anyelement: Elemen yang akan ditambahkan ke akhir array.

  • Nilai kembalian

    Mengembalikan nilai ARRAY.

  • Contoh

    -- Hasilnya adalah {1,2,3}
    SELECT array_append(ARRAY[1,2], 3);

ARRAY_CAT

  • Deskripsi: Menggabungkan dua array.

    array_cat(anyarray,anyarray)
  • Deskripsi Parameter

    • anyarray (parameter pertama): Array pertama.

    • anyarray (parameter kedua): Array kedua.

  • Nilai kembalian

    Mengembalikan nilai ARRAY.

  • Contoh

    -- Hasilnya adalah {1,2,3,4,5}
    SELECT array_cat(ARRAY[1,2,3], ARRAY[4,5]);

ARRAY_NDIMS

  • Deskripsi: Mengembalikan jumlah dimensi array.

    array_ndims(anyarray)
  • Deskripsi Parameter

    • anyarray: Array yang akan diperiksa.

  • Nilai kembalian

    Mengembalikan nilai INT.

  • Contoh

    -- Hasilnya adalah 2
    SELECT array_ndims(ARRAY[[1,2,3], [4,5,6]]);

ARRAY_DIMS

  • Deskripsi: Mengambil jumlah dimensi dari tipe array teks.

    array_dims(anyarray)
  • Deskripsi Parameter

    • anyarray: Array yang akan diperiksa.

  • Nilai kembalian

    Mengembalikan nilai TEXT.

  • Contoh

    -- Hasilnya adalah [1:2][1:3]
    SELECT array_dims(ARRAY[[1,2,3], [4,5,6]]);

ARRAY_LENGTH

  • Deskripsi: Mengembalikan panjang dimensi array tertentu.

    array_length(anyarray, int)
  • Deskripsi Parameter

    • anyarray: Array yang akan diperiksa.

    • int: Dimensi yang panjangnya ingin diperoleh. Dimensi dinomori mulai dari 1.

  • Nilai kembalian

    Mengembalikan nilai INT.

  • Contoh

    -- Hasilnya adalah 3
    SELECT array_length(ARRAY[1,2,3], 1);

ARRAY_LOWER

  • Deskripsi: Mengembalikan batas bawah dimensi array tertentu.

    array_lower(anyarray, int)	
  • Deskripsi Parameter

    • anyarray: Array yang akan diperiksa.

    • int: Dimensi yang batas bawahnya ingin diperoleh. Dimensi dinomori mulai dari 1.

  • Nilai kembalian

    Mengembalikan nilai INT.

  • Contoh

    -- Hasilnya adalah 0
    SELECT array_lower('[0:2]={1,2,3}'::int[], 1);

ARRAY_POSITIONS

  • Deskripsi: Mengembalikan subskrip elemen tertentu dalam array satu dimensi.

    array_positions(anyarray, anyelement)
  • Deskripsi Parameter

    • anyarray: Array satu dimensi yang akan diperiksa.

    • anyelement: Elemen yang subskripnya ingin ditemukan.

  • Nilai kembalian

    Mengembalikan nilai ARRAY.

  • Contoh

    -- Hasilnya adalah {1,2,4}
    SELECT array_positions(ARRAY['A','A','B','A'], 'A');

ARRAY_PREPEND

  • Deskripsi: Menambahkan elemen ke awal array.

    array_prepend(anyelement, anyarray)
  • Deskripsi Parameter

    • anyelement: Elemen yang akan ditambahkan ke awal array.

    • anyarray: Array sumber.

  • Nilai kembalian

    Mengembalikan nilai ARRAY.

  • Contoh

    -- Hasilnya adalah {1,2,3}
    SELECT array_prepend(1, ARRAY[2,3]);

ARRAY_REMOVE

  • Deskripsi: Menghapus semua elemen yang sama dengan nilai tertentu dari array satu dimensi.

    array_remove(anyarray, anyelement)
  • Deskripsi Parameter

    • anyarray: Array satu dimensi yang akan diproses.

    • anyelement: Nilai yang akan dihapus dari array. Semua elemen yang sama dengan nilai ini dihapus.

  • Nilai kembalian

    Mengembalikan nilai ARRAY.

  • Contoh

    -- Hasilnya adalah {1,3}
    SELECT array_remove(ARRAY[1,2,3,2], 2);

ARRAY_SORT

  • Deskripsi: Mengurutkan elemen-elemen array.

    array_sort(anyarray)
  • Deskripsi Parameter

    • anyarray: Array yang akan diurutkan.

  • Catatan penggunaan:

    • Hologres V1.1.46 dan versi yang lebih baru mendukung array TEXT. Array TEXT dikonversi menjadi array INT8 untuk pengurutan, dan array TEXT yang telah diurutkan dikembalikan.

    • Hologres V1.3.18 dan versi yang lebih baru mendukung array INT4, INT8, FLOAT4, FLOAT8, dan BOOLEAN. Array TEXT diurutkan secara leksikografis.

  • Nilai kembalian

    Mengembalikan nilai ARRAY.

  • Contoh

    -- Hasilnya adalah {1,1,2,3}
    SELECT array_sort(ARRAY[1,3,2,1]);

ARRAY_UPPER

  • Deskripsi: Mengembalikan batas atas dimensi array tertentu.

    array_upper(anyarray, int)
  • Deskripsi Parameter

    • anyarray: Array yang akan diperiksa.

    • int: Dimensi yang batas atasnya ingin diperoleh. Dimensi dinomori mulai dari 1.

  • Nilai kembalian

    Mengembalikan nilai INT.

  • Contoh

    -- Hasilnya adalah 4
    SELECT array_upper(ARRAY[1,8,3,7], 1);

UNNEST

  • Deskripsi: Memperluas setiap elemen array menjadi baris terpisah.

    unnest(anyarray)
  • Deskripsi Parameter

    • anyarray: Array yang akan diperluas.

  • Nilai kembalian

    Mengembalikan nilai TEXT.

  • Contoh

    SELECT unnest(ARRAY[1,2]);

    Hasil berikut dikembalikan.

    unnest
    ------
    1
    2
    (2 rows)

ARRAY_MAX

  • Deskripsi: Mengembalikan nilai maksimum dari semua elemen dalam array. Nilai NULL dilewati selama perhitungan.

    array_max(array)

    Deskripsi parameter

    • array: Array yang akan dihitung. Nilai NULL dilewati selama perhitungan.

    Catatan penggunaan:

    Fungsi ini hanya didukung di Hologres V1.3.19 dan versi yang lebih baru.

    Catatan

    Jika instans Hologres Anda merupakan versi sebelumnya, upgrade instans Anda atau bergabunglah dengan grup DingTalk Hologres untuk memberikan masukan. Untuk informasi lebih lanjut, lihat Peningkatan instans atau Bagaimana cara mendapatkan dukungan online tambahan?.

  • Nilai kembalian

    Mengembalikan nilai INT.

  • Contoh

    CREATE TABLE test_array_max_int (
        c1 int[]
    );
    
    INSERT INTO test_array_max_int
        VALUES (NULL), (ARRAY[-2, NULL, -3, -12, -7]);
    
    SELECT
        c1,
        array_max (c1)
    FROM
        test_array_max_int;

    Hasil berikut dikembalikan.

            c1        | array_max
    ------------------+-----------
     \N               |\N
     {-2,0,-3,-12,-7} |         0
    (2 rows)

ARRAY_MIN

  • Deskripsi: Mengembalikan nilai minimum dari semua elemen dalam array.

    array_min(array)

    Deskripsi parameter

    • array: Array yang akan dihitung.

    Catatan penggunaan:

    Fungsi ini hanya didukung di Hologres V1.3.19 dan versi yang lebih baru.

    Catatan

    Jika instans Hologres Anda merupakan versi sebelumnya, upgrade instans Anda atau bergabunglah dengan grup DingTalk Hologres untuk memberikan masukan. Untuk informasi lebih lanjut, lihat Peningkatan instans atau Bagaimana cara mendapatkan dukungan online tambahan?.

  • Nilai kembalian

    Mengembalikan nilai INT.

  • Contoh

    CREATE TABLE test_array_min_text (
        c1 text[]
    );
    
    INSERT INTO test_array_min_text
        VALUES (NULL), (ARRAY['hello', 'holo', 'blackhole', 'array']);
    
    SELECT
        c1,
        array_min (c1)
    FROM
        test_array_min_text;

    Hasil berikut dikembalikan.

                  c1              | array_min
    ------------------------------+-----------
     \N                           |\N
     {hello,holo,blackhole,array} | array
    (2 rows)

ARRAY_CONTAINS

  • Deskripsi: Memeriksa apakah suatu array berisi nilai tertentu.

    array_contains(array, target_value)

    Deskripsi Parameter

    • array: Array yang akan diperiksa.

    • target_value: Nilai target yang akan diperiksa keberadaannya dalam array.

    Catatan penggunaan:

    Fungsi ini hanya didukung di Hologres V1.3.19 dan versi yang lebih baru.

    Catatan

    Jika instans Hologres Anda merupakan versi sebelumnya, upgrade instans Anda atau bergabunglah dengan grup DingTalk Hologres untuk memberikan masukan. Untuk informasi lebih lanjut, lihat Peningkatan instans atau Bagaimana cara mendapatkan dukungan online tambahan?.

  • Nilai kembalian

    Mengembalikan nilai BOOLEAN. Jika array berisi nilai yang ditentukan, fungsi mengembalikan true. Jika tidak, mengembalikan false.

  • Contoh

    CREATE TABLE test_array_contains_text (
        c1 text[],
        c2 text
    );
    
    INSERT INTO test_array_contains_text
        VALUES (ARRAY[NULL, 'cs', 'holo', 'sql', 'a', NULL, ''], 'holo')
                    , (ARRAY['holo', 'array', 'FE', 'l', NULL, ''], 'function');
    
    SELECT
        c1,
        c2,
        array_contains (c1, c2)
    FROM
        test_array_contains_text;

    Hasil berikut dikembalikan.

                c1            |    c2    | array_contains
    --------------------------+----------+----------------
     {holo,array,FE,l,"",""}  | function | f
     {"",cs,holo,sql,a,"",""} | holo     | t
    (2 rows)

ARRAY_EXCEPT

  • Deskripsi: Mengembalikan array tanpa elemen array tertentu.

    array_except(array1, array2)

    Deskripsi parameter

    • array1: Array sumber.

    • array2: Array elemen yang akan dikecualikan dari array1. Hasilnya adalah array elemen yang ada di array1 tetapi tidak ada di array2.

    Catatan penggunaan:

    Fungsi ini hanya didukung di Hologres V1.3.19 dan versi yang lebih baru.

    Catatan

    Jika instans Hologres Anda merupakan versi sebelumnya, upgrade instans Anda atau bergabunglah dengan grup DingTalk Hologres untuk memberikan masukan. Untuk informasi lebih lanjut, lihat Peningkatan instans atau Bagaimana cara mendapatkan dukungan online tambahan?.

  • Nilai kembalian

    Mengembalikan nilai ARRAY.

  • Contoh

    CREATE TABLE test_array_except_text (
        c1 text[],
        c2 text[]
    );
    
    INSERT INTO test_array_except_text
        VALUES (ARRAY['o', 'y', 'l', 'l', NULL, ''], NULL), (ARRAY['holo', 'hello', 'hello', 'SQL', '', 'blackhole'], ARRAY['holo', 'SQL', NULL, 'kk']);
    
    SELECT
        c1,
        c2,
        array_except (c1, c2)
    FROM
        test_array_except_text;

    Hasil berikut dikembalikan.

                     c1                  |        c2        |   array_except
    -------------------------------------+------------------+-------------------
     {o,y,l,l,"",""}                     |                  | {o,l,y,""}
     {holo,hello,hello,SQL,"",blackhole} | {holo,SQL,"",kk} | {blackhole,hello}
    (2 rows)

ARRAY_DISTINCT

  • Deskripsi: Menghapus elemen duplikat dari array.

    array_distinct(array)

    Deskripsi parameter

    • array: Array yang akan dihapus elemen duplikatnya.

    Catatan penggunaan:

    Fungsi ini hanya didukung di Hologres V1.3.19 dan versi yang lebih baru.

    Catatan

    Jika instans Hologres Anda merupakan versi sebelumnya, upgrade instans Anda atau bergabunglah dengan grup DingTalk Hologres untuk memberikan masukan. Untuk informasi lebih lanjut, lihat Peningkatan instans atau Bagaimana cara mendapatkan dukungan online tambahan?.

  • Nilai kembalian

    Mengembalikan nilai ARRAY.

  • Contoh

    CREATE TABLE test_array_distinct_text (
        c1 text[]
    );
    
    INSERT INTO test_array_distinct_text
        VALUES (ARRAY['holo', 'hello', 'holo', 'SQL', 'SQL']), (ARRAY[]::text[]);
    
    SELECT
        c1,
        array_distinct (c1)
    FROM
        test_array_distinct_text;

    Hasil berikut dikembalikan.

                c1             |  array_distinct
    ---------------------------+------------------
     {holo,hello,holo,SQL,SQL} | {SQL,hello,holo}
     {}                        | {NULL}
    (2 rows)

ARRAY_UNION

  • Deskripsi: Menggabungkan dua array menjadi array baru dan menghapus elemen duplikat.

    array_union(array1, array2)

    Deskripsi parameter

    • array1: Array pertama.

    • array2: Array kedua. Duplikat dihapus setelah kedua array digabungkan.

    Catatan penggunaan:

    Fungsi ini hanya didukung di Hologres V1.3.19 dan versi yang lebih baru.

    Catatan

    Jika instans Hologres Anda merupakan versi sebelumnya, upgrade instans Anda atau bergabunglah dengan grup DingTalk Hologres untuk memberikan masukan. Untuk informasi lebih lanjut, lihat Peningkatan instans atau Bagaimana cara mendapatkan dukungan online tambahan?.

  • Nilai kembalian

    Mengembalikan nilai ARRAY.

  • Contoh

    CREATE TABLE test_array_union_int (
        c1 int[],
        c2 int[]
    );
    
    INSERT INTO test_array_union_int
        VALUES (NULL, ARRAY[2, -3, 2, 7]), (ARRAY[2, 7, -3, 2, 7], ARRAY[12, 9, 8, 7]);
    
    SELECT
        c1,
        c2,
        array_union (c1, c2)
    FROM
        test_array_union_int;

    Hasil berikut dikembalikan.

          c1      |     c2     |   array_union
    --------------+------------+-----------------
     \N           | {2,-3,2,7} | {2,7,-3}
     {2,7,-3,2,7} | {12,9,8,7} | {9,2,7,8,12,-3}
    (2 rows)

REGEXP_MATCH

  • Deskripsi: Mencocokkan string terhadap ekspresi reguler dan mengembalikan hasil pencocokan dalam bentuk array.

    REGEXP_MATCH(<str> TEXT, <pattern> TEXT) 
  • Parameter

    • str: Wajib diisi. String yang akan dicocokkan.

    • pattern: Wajib diisi. Ekspresi reguler.

  • Nilai kembalian

    Mengembalikan nilai bertipe ARRAY.

  • Contoh

    SELECT regexp_match('foobarbequebaz', '(bar)(beque)');

    Hasil berikut dikembalikan.

    regexp_match
    ------------
    {bar,beque}

REGEXP_SPLIT_TO_ARRAY

  • Deskripsi: Fungsi pemisahan string yang membagi string menggunakan ekspresi reguler dan mengembalikan hasilnya sebagai array.

    REGEXP_SPLIT_TO_ARRAY(<str> TEXT, <pattern> TEXT)
  • Parameter

    • str: Wajib diisi. String yang akan dibagi.

    • pattern: Wajib diisi. Ekspresi reguler yang menentukan cara membagi string. Karakter dan konstruksi khusus dalam ekspresi reguler mengidentifikasi posisi pembatas dalam string.

  • Nilai kembalian

    Mengembalikan nilai bertipe ARRAY.

  • Contoh

    CREATE TABLE interests_test (
        name text,
        interests text
    );
    
    INSERT INTO interests_test
        VALUES ('Zhang San', 'singing,dancing'), ('Li Si', 'soccer,running,drawing'), ('Wang Wu', 'flower arranging,calligraphy,playing piano,sleeping');
    
    SELECT
        name,
        REGEXP_SPLIT_TO_ARRAY(interests, ',')
    FROM
        interests_test;
    

    Hasil berikut dikembalikan.

      name   |                  regexp_split_to_array                  
    ---------+-----------------------------------------------------------
     Zhang San | {singing,dancing}
     Li Si   | {soccer,running,drawing}
     Wang Wu | {"flower arranging",calligraphy,"playing piano",sleeping}

Operator

Operator

Return type

Description

Use case

Result

@>

BOOLEAN

Memeriksa apakah array pertama berisi array kedua.

SELECT ARRAY[1,2,3] @> ARRAY[1,2];

t

<@

BOOLEAN

Memeriksa apakah array pertama termuat dalam array kedua.

SELECT ARRAY[1,2,3] <@ ARRAY[1,2];

f

&&

BOOLEAN

Memeriksa apakah kedua array memiliki elemen yang sama.

Catatan

Hologres V1.3.37 dan versi yang lebih baru mendukung kolom array sebagai input.

SELECT ARRAY[1,2,3] && ARRAY[1,2];

t

Fungsi array orde tinggi

Hologres V3.2 dan versi yang lebih baru mendukung beberapa fungsi array orde tinggi. Untuk informasi lebih lanjut, lihat Ekspresi LAMBDA dan fungsi terkait.