Menggabungkan Nama Pelakon untuk Setiap Filem dalam Jadual SQL
Bayangkan jadual dengan lajur "Filem" dan "Pelakon". Tugasnya ialah untuk mendapatkan semula senarai filem dan pelakon yang sepadan, dengan semua pelakon untuk setiap filem digabungkan menjadi satu rentetan.
Penyelesaian menggunakan string_agg()
:
Kaedah yang paling berkesan menggunakan fungsi string_agg()
(tersedia dalam PostgreSQL 9.0 dan lebih baru):
<code class="language-sql">SELECT movie, string_agg(actor, ', ') AS actor_list FROM table_name GROUP BY movie;</code>
string_agg()
menggabungkan nama pelakon, dipisahkan dengan koma, untuk setiap filem. GROUP BY movie
memastikan satu baris setiap filem.
Alternatif untuk Versi PostgreSQL Lama (pra-9.0):
Untuk versi PostgreSQL yang lebih lama, gunakan array_agg()
dan array_to_string()
:
<code class="language-sql">SELECT movie, array_to_string(array_agg(actor ORDER BY actor), ', ') AS actor_list FROM table_name GROUP BY movie;</code>
Ini mengagregatkan pelakon ke dalam tatasusunan, kemudian menukarnya kepada rentetan yang dipisahkan koma. Klausa ORDER BY actor
mengisih pelakon mengikut abjad dalam senarai setiap filem.
Menyesuaikan Susunan Senarai Pelakon:
Untuk mengawal susunan pelakon dalam setiap senarai (cth., mengikut susunan pengebilan), tambah ORDER BY
di dalam string_agg()
atau array_agg()
:
<code class="language-sql">SELECT movie, string_agg(actor, ', ' ORDER BY actor) AS actor_list --Alphabetical order FROM table_name GROUP BY movie;</code>
Pendekatan ini memperkemas persembahan perhubungan pelakon filem, memudahkan analisis dan paparan data.
Atas ialah kandungan terperinci Bagaimana untuk Menggabungkan Pelakon untuk Setiap Filem dalam Jadual SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!