Ich möchte die Anzahl der Zeilen mit unterschiedlichen Werten auf zählen NUR EINE SPALTE. Zum Beispiel, wenn ich activities
Tabelle habe, in der email
Spalte ist, möchte ich die Anzahl der Spalten mit unterschiedlichen Wert in email
Spalte zählen.Warum distinct funktioniert nicht mit Laravel + Postgresql?
Ich bin mit Laravel + PostgreSQL. Ich habe den folgenden Code ausprobiert, aber es zählt alle Zeilen!
$emailsCount = DB::table('activities')
->where('user_id',$UserId)
->distinct('email')
->count();
Später kam ich zu wissen, dass distinct()
werden keine Argumente habe ich versucht, eine Lösung für mein Problem und jemand (andere Stackoverflow Fragen) vorgeschlagen, mich zu finden groupBy
wie dem folgenden Code zu verwenden.
$emailsCount = DB::table('activities')
->where('user_id',$UserId)
->groupBy('email')
->count();
Aber es gibt falsche Informationen zurück. Zum Beispiel: In meinem Fall gibt es 1
zurück, aber ich kann viele und viele verschiedene E-Mails in email
Spalte sehen. Ich weiss nicht, was falsch ist. Wie kann ich das richtig machen?
es gibt 1 zurück, weil Sie mit '-> where ('id', $ UserId) 'und es gibt nur eine Aktivität, bei der 'id' gleich $ UserId ist !! – Maraboc
Nein, jede Benutzer-ID kann mehrere E-Mail-ID haben! –
Können Sie die Struktur der Aktivitäten zeigen? und ich habe nicht verstanden, was meinst du mit jeder Benutzer-ID kann mehrere E-Mail-ID haben? – Maraboc