Wie man in yii2 zählt und gruppiert

In Yii2 können Sie die Methoden count() und groupBy() im Query-Builder verwenden, um die Ergebnisse einer Abfrage zu zählen und zu gruppieren.

Hier ist ein Beispiel dafür, wie diese Methoden verwendet werden, um die Anzahl der Benutzer nach ihrer Rolle zu zählen:

$users = (new \yii\db\Query())
    ->select(['role', 'COUNT(*) as count'])
    ->from('user')
    ->groupBy(['role'])
    ->all();

In diesem Beispiel wird count(*) verwendet, um die Anzahl der Zeilen für jede Rolle zu zählen, und die Ergebnisse werden nach der Spalte role gruppiert. Die Abfrage gibt ein Array von Arrays zurück, in denen jedes die Rolle und die Anzahl für diese Gruppe enthält.

Sie können auch die Methode createCommand() verwenden, um den SQL-Befehl auszuführen und die Anzahl der gruppierten Daten zu erhalten

$count = Yii::$app->db->createCommand("SELECT role, COUNT(*) as count FROM user GROUP BY role")->queryAll();

Sie können auch die Methode count() verwenden, um die Anzahl der Zeilen in einer Tabelle zu erhalten

$count = (new \yii\db\Query())->from('user')->count();

Beide oben genannten Beispiele geben die Anzahl der Zeilen in der Tabelle 'user' zurück.