Unter Verwendung von DISTINCT und OBEN gleichzeitig
Will ich mit distinct & top in der gleichen Zeit , habe ich
SELECT distinct TOP 10 * FROM TableA
aber ich habe noch ein Duplikat PersonId also ich tought zu tun :
SELECT distinct (personID) TOP 10 * FROM TableA
aber die syntax ist falsch , so Frage ich mich, ob es irgendeine Lösung
Dank,
- Was werden Sie tun, wenn Sie wollen wählen Sie nur eine
personID
wenn Sie doppelte Zeilen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Du bist mit einem
SELECT *
die ziehen in alle Aufzeichnungen. Wenn Sie möchten, verwenden Sie eine echte DISTINCT nur die Liste aus der Spalte, die Sie erhalten möchten, die unterschiedlichen Werte. Wenn Sie mehrere Spalten, dann sind alle diese Spalten zusammen bilden einen eindeutigen Datensatz.Beachten Sie, dass ohne eine
ORDER BY
das liefert die ersten 10 Einträge, die in keiner bestimmten Reihenfolge. Die Ergebnisse könnten anders sein, jedes mal, wenn Sie die Abfrage ausführen.Scheinen Sie zu wollen, 10 zufällige Datensätze für verschiedene Personen. Versuchen Sie dies:
Im Allgemeinen jedoch, wenn mit
top
sollten Sie auch einorder by
angeben, was Sie bedeuten, von "oben".select personid from tablea Probe 10
Diese Werke in teradata
Es geht ganz einfach, wenn Sie mit der Abfrage wie diese:
In der obigen Abfrage
name
ist die column_name und[ATTENDANCE]
ist der Tabellenname.Können Sie auch
WHERE
mit damit abfiltrieren Bedingungen.SELECT DISTINCT ta.personid FROM (SELECT TOP 10 * FROM TableA) ta
ta ist Gegenstand der Unterabfrage und mit ta-Objekt können wir verschiedene die Werte
ich es behoben habe ich
SELECT distinct TOP 10 personID FROM TableA
Wenn das Ziel ist, wählen Sie die top-1-Datensatz für jede personID, dann verwenden Sie
Seit Sie dabei sind, eine "Gruppe durch", wird es wieder jede Spalte, aber ignoriert (nicht angezeigt), können zusätzliche Zeilen mit gleicher personId