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获取总分,参数是要统计的字段名(必须)
Aggregationsmethode Wenn keine Daten vorhanden sind, ist der Standardwert 0 und kann mit Aggregationsabfragen verwendet werden. Andere Abfragebedingungen

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 e

generierte 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