Bagaimana untuk Mengubah Keputusan Pertanyaan MySQL dengan ID GROUP BY dan Berbilang Data?

Barbara Streisand
Lepaskan: 2024-11-07 17:09:03
asal
813 orang telah melayarinya

How to Pivot MySQL Query Results with GROUP BY and Multiple Data IDs?

Keputusan Pertanyaan MySQL PIVOT dengan GROUP BY

Masalah:

Mengubah jadual pangkalan data kepada paparkan baris sebagai lajur, mengumpulkan data dengan kunci yang ditentukan (cth., cap masa) sambil memastikan semua nilai data untuk setiap kunci dibentangkan dalam lajur yang sepadan.

Pertanyaan Cadangan:

SELECT d.data_timestamp,
       SUM(IF(data_id = 1, data_value, 0)) AS 'input_1',
       SUM(IF(data_id = 2, data_value, 0)) AS 'input_2',
       ...
       SUM(IF(data_id = 20, data_value, 0)) AS 'input_20'
FROM data
GROUP BY d.data_timestamp
ORDER BY d.data_timestamp ASC
Salin selepas log masuk

Penjelasan:

  • Pertanyaan luar memilih cap masa data yang berbeza daripada jadual data.
  • Untuk setiap cap masa data, pertanyaan mengira jumlah nilai data untuk setiap data_id menggunakan fungsi IF() di dalam agregat SUM().
  • Jika data_id sepadan dengan id yang diingini (cth., 1 untuk input_1), nilai data yang sepadan ditambah pada jumlah ; jika tidak, 0 ditambah.
  • Pengiraan ini diulang untuk setiap data_id sehingga 20, mewujudkan lajur untuk setiap data_id yang berbeza.
  • Hasil akhir dikumpulkan mengikut cap masa data dan disusun dalam menaik pesanan.

Batasan:

  • Pendekatan ini memerlukan jumlah eksplisit untuk setiap data_id dalam pertanyaan, yang mungkin tidak dapat dilaksanakan jika terdapat bilangan id yang besar.
  • Pendekatan alternatif yang melibatkan CASE atau JOIN berbilang peringkat boleh digunakan bergantung pada keperluan khusus dan struktur data.

Atas ialah kandungan terperinci Bagaimana untuk Mengubah Keputusan Pertanyaan MySQL dengan ID GROUP BY dan Berbilang Data?. 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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!