Ich habe eine Tabelle wie folgt aus:meine benutzerdefinierte Ansicht erstellen in SQL
UserName nvarchar(50)
(Primärschlüssel)FieldId nvarchar(50)
(Primärschlüssel)AvgScore float
Wenn ich erstellen möchten eine Ansicht, die mir zeigt "Was ist Max von AvgScore für jeden Benutzernamen.", kann es leicht wie folgt erstellt werden:
SELECT
UserName, MAX(AvgScore) AS MaxAvgScore
FROM
dbo.tblUsersFields
GROUP BY
UserName
Aber ich möchte sicher FieldId
bezogen auf MaxAvgScore
. Ich habe es versucht:
SELECT
UserName, FieldId, MAX(AvgScore) AS MaxAvgScore
FROM
dbo.tblUsersFields
GROUP BY
UserName
Aber das funktioniert nicht. Diese Fehlerursache:
Was kann ich tun?
Fügen Sie einige Beispieltabellendaten und das erwartete Ergebnis hinzu. – jarlh
Die allgemeine GROUP BY-Regel lautet: Wenn eine GROUP BY-Klausel angegeben ist, muss jede Spaltenreferenz in der SELECT-Liste entweder eine Gruppierungsspalte angeben oder das Argument einer set-Funktion sein. Versuchen Sie 'GROUP BY UserName, FieldId'. – jarlh
Sie müssen entweder die 'FeldID'-Spalte (sum/avg/max/usw.) aggregieren oder sie der' group by' -Klausel hinzufügen ('... Gruppe nach UserName, FieldID') – tarheel