Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mencari ID Makanan Paling Kerap bagi setiap Negara dalam SQL?

Bagaimana untuk Mencari ID Makanan Paling Kerap bagi setiap Negara dalam SQL?

Susan Sarandon
Susan Sarandonasal
2024-12-19 14:50:10783semak imbas

How to Find the Most Frequent Food ID per Country in SQL?

Mencari Nilai Paling Biasa untuk Lajur Diberi Nilai Lajur Lain dalam SQL

Dalam senario di mana jadual mengandungi berbilang lajur, seperti "country", "food_id", dan "eten", tugas biasa ialah menentukan nilai yang paling kerap berlaku untuk satu lajur ("food_id") dalam setiap nilai unik lajur lain ("negara").

Satu pendekatan, seperti yang dinyatakan dalam soalan, melibatkan mencipta jadual sementara dan melakukan berbilang subkueri untuk mengira kiraan, cari kiraan maksimum , dan dapatkan semula nilai "food_id" yang sepadan. Walaupun berfungsi, kaedah ini kelihatan menyusahkan.

Nasib baik, PostgreSQL 9.4 memperkenalkan penyelesaian yang lebih mudah: fungsi mod(). Fungsi ini menyediakan cara yang cekap untuk mencari nilai yang paling biasa untuk lajur tertentu dalam setiap kumpulan yang ditakrifkan oleh ungkapan kumpulan.

Untuk menggunakan fungsi mod() untuk tugasan ini, pertanyaan SQL berikut boleh digunakan:

SELECT mode() within group (order by food_id)
FROM munch
GROUP BY country

Pertanyaan ini memanfaatkan fungsi mod() untuk mengira nilai "food_id" yang paling biasa untuk setiap nilai "negara" yang unik. Klausa WITHIN GROUP (ORDER BY food_id) memastikan bahawa fungsi mod() beroperasi pada lajur "food_id" dalam setiap kumpulan negara, menyusun nilai dalam tertib menaik sebelum mengenal pasti mod.

Hasil pertanyaan ini , seperti yang ditunjukkan dalam jawapan yang disediakan, akan menjadi jadual yang memaparkan "negara" dan "food_id" yang sepadan dengannya. nilai:

country | mode
--------------
GB      | 3
US      | 1

Atas ialah kandungan terperinci Bagaimana untuk Mencari ID Makanan Paling Kerap bagi setiap Negara dalam SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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