Pertanyaan tab silang atau pangsi dalam MySQL membolehkan anda mengubah data, biasanya daripada struktur berorientasikan baris kepada yang berorientasikan lajur, memudahkan analisis dan pembentangan yang lebih mudah. Untuk memahami cara menggunakan pertanyaan tab silang, mari kita mendalami contoh praktikal.
Pertimbangkan jadual dengan struktur berikut:
app_id transaction_id mobile_no node_id customer_attribute entered_value 100 111 9999999999 1 Q1 2 100 111 9999999999 2 Q2 1 100 111 9999999999 3 Q3 4 100 111 9999999999 4 Q4 3 100 111 9999999999 5 Q5 2 100 222 8888888888 4 Q4 1 100 222 8888888888 3 Q3 2 100 222 8888888888 2 Q2 1 100 222 8888888888 1 Q1 3 100 222 8888888888 5 Q5 4
Anda mahu memaparkan rekod ini dalam format berikut:
app_id transaction_id mobile Q1 Q2 Q3 Q4 | Q5 100 111 9999999999 2 1 4 3 2 100 222 8888888888 3 1 2 1 4
Untuk mencapai ini, anda boleh menggunakan pertanyaan tab silang. Walau bagaimanapun, dalam percubaan awal anda, anda mendapatkan semula berbilang baris untuk setiap titik data, yang bukan hasil yang diingini.
Pertanyaan terlaras berikut akan memberikan hasil yang diingini:
SELECT app_id, transaction_id, mobile_no, MAX(CASE WHEN node_id = 1 THEN entered_value END) AS Q1, MAX(CASE WHEN node_id = 2 THEN entered_value END) AS Q2, MAX(CASE WHEN node_id = 3 THEN entered_value END) AS Q3, MAX(CASE WHEN node_id = 4 THEN entered_value END) AS Q4, MAX(CASE WHEN node_id = 5 THEN entered_value END) AS Q5 FROM trn_user_log GROUP BY app_id, transaction_id, mobile_no
Anda juga menyatakan hasrat untuk menggunakan nilai daripada lajur customer_attribute sebagai pengepala lajur. Walaupun fungsi NAME_CONST tidak sesuai untuk tujuan ini, anda boleh menggunakan teknik yang mungkin mencapai hasil yang diingini. Walau bagaimanapun, sila berikan penjelasan lanjut tentang hasil yang anda inginkan untuk membolehkan penyelesaian yang tepat.
Atas ialah kandungan terperinci Bagaimana untuk Mencipta Pertanyaan Crosstab MySQL untuk Menggitar Data daripada Baris ke Lajur?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!