Verwendung von DISTINCT und TOP gleichzeitig

9

Ich möchte distinct & amp; oben in der gleichen Zeit, tat ich

SELECT distinct TOP 10 * FROM TableA

aber ich habe immer noch eine doppelte PersonId, also musste ich tun:

SELECT distinct (personID) TOP 10 * FROM TableA  aber die Syntax ist falsch, also frage ich mich, ob es eine Lösung gibt

Danke,

    
user1187282 18.03.2013, 14:27
quelle

6 Antworten

23

Sie verwenden eine SELECT * , die alle Datensätze zieht. Wenn Sie eine echte DISTINCT verwenden möchten, geben Sie nur die Spalte an, für die Sie unterschiedliche Werte erhalten möchten. Wenn Sie mehrere Spalten haben, bilden alle diese Spalten einen eindeutigen Datensatz.

%Vor%

Beachten Sie, dass ohne ORDER BY die ersten 10 Datensätze in keiner bestimmten Reihenfolge zurückgegeben werden. Die Ergebnisse können bei jeder Abfrage anders sein.

    
Matt Busche 18.03.2013 14:28
quelle
1

Wählen Sie distinct personid aus Tabelle 10

Dies funktioniert in Teradata     

Pinky Joe 28.02.2017 13:27
quelle
0

Sie scheinen 10 zufällige Datensätze für verschiedene Personen zu haben. Versuchen Sie Folgendes:

%Vor%

Im Allgemeinen sollten Sie bei Verwendung von top jedoch auch order by verwenden, um anzugeben, was Sie mit "top" meinen.

    
Gordon Linoff 18.03.2013 15:51
quelle
0

Es funktioniert einfach, wenn Sie eine Abfrage wie folgt verwenden:

%Vor%

In der obigen Abfrage ist name der Spaltenname und [ATTENDANCE] ist der Tabellenname.

Sie können auch WHERE verwenden, um Filterbedingungen zu erstellen.

    
arul mouzhi 25.05.2017 11:35
quelle
-2

Ich habe es behoben

%Vor%     
user1187282 18.03.2013 15:23
quelle
-2

Wenn das Ziel darin besteht, den ersten 1 Datensatz jeder Personen-ID auszuwählen, verwenden Sie

%Vor%

Da Sie eine "Gruppierung nach" durchführen, wird jede Spalte zurückgegeben, aber alle zusätzlichen Zeilen mit derselben personId

werden ignoriert (nicht angezeigt)     
Vette 02.10.2017 18:23
quelle

Tags und Links