Aggregationsabfrage (Abfrage-Generator 7)
In Anwendungen verwenden wir häufig einige statistische Daten, wie z. B. die Anzahl der aktuellen Benutzer (oder derjenigen, die bestimmte Bedingungen erfüllen), die maximale Punktzahl aller Benutzer, die durchschnittliche Punktzahl der Benutzer usw. ThinkPHP führt diese aus Statistische Operationen Bietet eine Reihe integrierter Methoden, darunter:
方法 | 说明 |
---|---|
count | 统计数量,参数是要统计的字段名(可选) |
max | 获取最大值,参数是要统计的字段名(必须) |
min | 获取最小值,参数是要统计的字段名(必须) |
avg | 获取平均值,参数是要统计的字段名(必须) |
sum | 获取总分,参数是要统计的字段名(必须) |
Verwendungsbeispiele
Anzahl der Benutzer abrufen:
Db::table('think_user')->count();
Die tatsächlich generierte SQL-Anweisung lautet:
SELECT COUNT(*) AS tp_count FROM `think_user` LIMIT 1
oder basierend auf Feldstatistiken:
Db::table('think_user')->count('id');
Die generierte SQL-Anweisung lautet:
SELECT COUNT(id) AS tp_count FROM `think_user` LIMIT 1
Ermitteln Sie die maximale Punktzahl des Benutzers:
rrree Die von egenerierte SQL-Anweisung lautet:
Db::table('think_user')->max('score');
Wenn der Maximalwert, den Sie erhalten möchten, kein numerischer Wert ist, können Sie den zweiten Parameter verwenden, um die erzwungene Konvertierung
SELECT MAX(score) AS tp_max FROM `think_user` LIMIT 1<🎜 zu deaktivieren > Erhalten Sie Benutzer mit Punkten größer als 0. Das minimale Integral von 🎜>Ermitteln Sie die durchschnittliche Punktzahl des Benutzers:
Db::table('think_user')->max('name',false);Die generierte SQL-Anweisung lautet:
Db::table('think_user')->where('score', '>', 0)->min('score');Statistik der Gesamtpunktzahl des Benutzers:
Db::table('think_user')->where('score', '>', 0)->min('name',false);Die generierte SQL-Anweisung lautet:
Db::table('think_user')->avg('score');Wenn Sie eine Gruppe für die Aggregationsabfrage verwenden möchten, müssen Sie die Abfrage selbst implementieren, zum Beispiel:
SELECT AVG(score) AS tp_avg FROM `think_user` LIMIT 1