[MSSQL] Zeilen gruppieren

atlantyz

Erfahrenes Mitglied
Hallo,

ich bin ein kompletter **** in MSSQL und der Server will auch einfach nicht so wie ich will.

Ich habe eine Tabelle (View) mit etwas mehr als ein paar Millionen Einträgen. Viele davon sind doppelt, sodass man auf eine tatsächliche Anzahl von etwa 400.000 unterschiedlichen Einträgen kommt.

In der Tabelle sind folgende Spalten enthalten:
Key, Name, Vorname, Straße, PLZ, Ort

Nun möchte ich gerne die doppelten Einträge bei der Abfrage aussortieren, d.h alle einträge anhand des Key zusammenfassen (dieser kann mehrfach vorkommen). Aber meine Frage: wie mache ich das?

Ich hab mir "Distinct" angeschaut, aber das funktioniert irgendwie nicht wirklich. Bei folgender Abfrage:

Code:
select Distinct Key, Name, Vornam, Strasse, PLZ, Ort from View1
dauert die Abfrage immer noch endlos lange und ich laufe in einen Timeout.

Wenn ich nur
Code:
select Distinct Key, Name, Vorname from View1
mache, geht es zwar superschnell und er macht auch das, was er tun soll, aber dann fehlen mir halt die anderen Felder.

Group by hab ich mir auch angeschaut, aber wenn ich da nach Key sortiere, labert er mich mit irgendwas voll, dass die anderen Felder keinen Aggregatzustand hätten, was immer das auch heißen mag.

Kann mir bitte einer helfen? DEr Server treibt mich noch zur Verzweiflung.

Gruß
Joey
 
Kannst Du mir bitte das CREATE TABLE posten, welches für die Erstellung der Tabelle verwendet worden ist.

Falls ein Index vorhanden ist, sollten sich DISTINCT und GROUP BY in der Performance nicht unterscheiden.

Wenn diese Abfrage oft verwendet wird, kommt eine Materialisierung der Daten in Frage.
 

Neue Beiträge

Zurück