Es fühlt sich an, als müsste es eine grundlegende Lösung haben, aber ich scheine es nicht zu bekommen.
Nehmen Sie diese Abfrage:
%Vor%Ich möchte das effektiv tun:
%Vor%Ich möchte DatePublished nicht wirklich auswählen, aber es scheint sinnvoll zu sein, danach zu sortieren. Das funktioniert aber nicht.
Grundsätzlich möchte ich Kategorien nach dem neuesten DatePublished-Artikel bestellen.
In Aggregationen (- & gt; GROUP BY
) können Sie nur Felder in Kombination mit Aggregationsfunktionen (z. B. SUM
, MAX
, MIN
) und in GROUP BY
aufgelisteten Feldern auswählen / verwenden. Klausel.
Einfaches Beispiel:
%Vor% Wenn Sie SELECT A,B FROM table GROUP BY A
schreiben würden, ergäbe dies:
aber das ist nicht möglich ( B
hat 2 Werte in einer Zeile!?!). Sie müssen etwas mit den Werten von B
tun, die sie auch gruppiert. Also zwei Möglichkeiten:
1 : Fügen Sie B
in der GROUP BY
-Klausel
ergibt
%Vor% 2 : Verwenden Sie eine Aggregationsfunktion für B
gibt dir
%Vor% Die gleichen Argumente gelten für die ORDER BY
-Klausel.
In den meisten Fällen, wenn Sie eine Aussage wie die erste, mit der ich auftauchte, schreiben möchten, ist die Möglichkeit 1 die Lösung, da Sie vielleicht wissen, dass A
und B
zusammengehören (allgemeines Beispiel: UserId
und UserName
) aber das RDBMS kennt es nicht!
Tags und Links sql sql-server