Pertanyaan pengagregatan (pembina pertanyaan 7)
Dalam aplikasi, kami sering menggunakan beberapa data statistik, seperti bilangan pengguna semasa (atau mereka yang memenuhi syarat tertentu), mata maksimum semua pengguna, skor purata pengguna, dll. ThinkPHP menyediakan kaedah untuk ini operasi statistik. Kaedah terbina dalam siri ini termasuk:
Kaedah | Penerangan |
---|---|
kira | Kira nombor, parameter adalah nama medan |
Dapatkan nilai maksimum , parameter ialah nama medan yang hendak dikira (diperlukan) | |
Dapatkan nilai minimum, parameter ialah nama medan yang akan dikira (diperlukan) . | |
Contoh penggunaan | |
Db::table('think_user')->count(); | Penyataan SQL yang dijana sebenar adalah: SELECT COUNT(*) AS tp_count FROM `think_user` LIMIT 1 | Atau berdasarkan statistik medan:
SELECT COUNT(id) AS tp_count FROM `think_user` LIMIT 1Dapatkan mata maksimum pengguna:
Db::table('think_user')->max('score');Dijana Pernyataan SQL ialah:
SELECT MAX(score) AS tp_max FROM `think_user` LIMIT 1Jika nilai maksimum yang anda mahu dapatkan bukan nilai angka, anda boleh menggunakan parameter kedua untuk mematikan penukaran paksa
Db::table('think_user')->max('name',false);Dapatkan mata minimum pengguna yang mata lebih besar daripada 0:
Db::table('think_user')->where('score', '>', 0)->min('score');Sama seperti kaedah maks, min juga Menyokong penggunaan parameter kedua
Db::table('think_user')->where('score', '>', 0)->min('name',false);Dapatkan purata mata pengguna:
Db::table('think_user')->avg('score');Penyataan SQL yang dijana ialah:
SELECT AVG(score) AS tp_avg FROM `think_user` LIMIT 1Statistik jumlah skor pengguna:
Db::table('think_user')->where('id',10)->sum('score');Pernyataan SQL yang dijana ialah:
SELECT SUM(score) AS tp_sum FROM `think_user` LIMIT 1Untuk melaksanakan kumpulan pertanyaan, jika anda ingin menggunakan anda perlu melaksanakan pertanyaan itu sendiri, contohnya:
Db::table('score')->field('user_id,SUM(score) AS sum_score')->group('user_id')->select();