Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Mengagregatkan Lajur Tidak Berkumpulan dalam MySQL 5.6?

Bagaimana untuk Mengagregatkan Lajur Tidak Berkumpulan dalam MySQL 5.6?

Susan Sarandon
Lepaskan: 2024-11-29 04:35:13
asal
351 orang telah melayarinya

How to Aggregate Non-Grouped Columns in MySQL 5.6?

Mengagregatkan tanpa Kumpulan: Penyelesaian untuk MySQL 5.6

Dalam MySQL 5.6, fungsi ANY_VALUE(), yang membenarkan untuk mengagregatkan lajur bukan berkumpulan , tidak tersedia. Ini menimbulkan cabaran apabila memindahkan pertanyaan daripada MySQL 5.7 ke 5.6.

Pengubahsuaian Mod MySQL

Satu penyelesaian ialah mengubah suai mod SQL untuk persekitaran pengeluaran. Dengan menetapkan mod ONLY_FULL_GROUP_BY kepada kosong, ia akan melumpuhkan sementara sekatan pada mengagregat lajur bukan berkumpulan.

SET SESSION sql_mode = '';
/* Your query here */
SET SESSION sql_mode = @mode;
Salin selepas log masuk

Kaedah Pengagregatan Alternatif

Walau bagaimanapun, ia adalah penting untuk ambil perhatian bahawa pertanyaan yang dipersoalkan mungkin tidak sesuai. Ia mengembalikan baris rawak daripada jadual "imej" untuk setiap negara.

Pendekatan yang lebih dipercayai ialah memilih baris imej tertentu berdasarkan kriteria, seperti lajur "id".

SELECT c.id, c.name, i.*
FROM countries c
LEFT JOIN (
  SELECT MIN(id) id, country_id
  FROM images
  GROUP BY country_id
) first ON c.id = first.country_id
LEFT JOIN images i ON first.id = i.id
Salin selepas log masuk

Pertanyaan ini akan mengembalikan satu baris bagi setiap negara dengan pilihan imej yang boleh diramal. Ia menggunakan lajur "id" untuk memilih imej "pertama" bagi setiap negara.

Atas ialah kandungan terperinci Bagaimana untuk Mengagregatkan Lajur Tidak Berkumpulan dalam MySQL 5.6?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan