Mengumpulkan Segmen Masa untuk Jumlah dan Pengiraan Purata
Dalam pangkalan data MySQL, anda boleh mendapatkan semula data ringkasan daripada jadual yang mengandungi rekod bercap masa dengan pelbagai selang antara tangkapan. Matlamat anda adalah untuk mengumpulkan rekod ini dan mengira jumlah dan nilai purata untuk segmen masa tertentu, seperti 10 saat atau 30 saat.
PENYELESAIAN
Kunci kepada masa pengumpulan segmen terletak pada klausa GROUP BY. Untuk mengumpulkan dan meringkaskan data berdasarkan selang 30 saat, gunakan perintah berikut:
GROUP BY UNIX_TIMESTAMP(time_stamp) DIV 30
Ungkapan ini membahagikan cap waktu Unix bagi setiap rekod dengan 30, membundarkan ke bawah kepada tanda 30 saat yang terdekat. Akibatnya, rekod dalam selang 30 saat yang sama akan dikumpulkan bersama.
Menyesuaikan Sempadan Segmen Masa
Anda boleh mengubah suai sempadan segmen masa anda dengan melaraskan penyebut dalam ungkapan DIV. Contohnya, untuk mengumpulkan dalam selang 20 saat:
GROUP BY UNIX_TIMESTAMP(time_stamp) DIV 20
Menimbal Segmen Masa
Untuk menambah penimbal pada segmen masa anda, anda boleh menggunakan formula berikut :
GROUP BY (UNIX_TIMESTAMP(time_stamp) + r) DIV 30
Dalam ungkapan ini, r mewakili integer bukan negatif kurang daripada 30. Dengan menambah nilai pada cap masa, anda boleh membuat segmen masa bertindih. Contohnya:
GROUP BY (UNIX_TIMESTAMP(time_stamp) + 5) DIV 30
Pertanyaan ini akan mengumpulkan rekod ke dalam segmen masa antara hh:mm:05 hingga hh:mm:35 dan dari hh:mm:35 hingga hh:mm 1:05.
Atas ialah kandungan terperinci Bagaimana untuk mengumpulkan Data Cap Waktu MySQL ke dalam Segmen Masa Tersuai untuk Jumlah dan Pengiraan Purata?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!