Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?
Forum>Entwickler>MSSQL: Innerhalb einer Gruppe hochzählen

MSSQL: Innerhalb einer Gruppe hochzählen

Christoph_M
Christoph_M01.12.1100:40
Moin,

ich habe eine Tabelle in der 2 Spalten (questionName und splitterIdentifier) jeweils eine Gruppe definieren.

D.h. SELECT distinct questionName, splitterIdentifier FROM foobar
liefert mir alle vorhanden Gruppen.

Innerhalb dieser Gruppen gibt es zwischen 1 und n Einträgen. Also mehrere Einträge können die gleiche questionName/splitterIdentifier Kombination haben.

Jetzt möchte ich in einer zusätzliche Spalte innerhalb jeder Gruppe hochzählen. Die Sortierung ist dabei egal.

Ich dachte sowas könnte man mit partition by machen, habe das aber in MSSQL nicht hinbekommen.

Hat jemand irgendwelche Ideen oder Denkanstöße?

Danke schonmal und viele Grüße,
Christoph
0

Kommentare

uhu
uhu01.12.1103:57
Vielleicht hilf das hier weiter "How do I return row numbers with my query?":

CREATE TABLE #teams 

    city VARCHAR(20), 
    team VARCHAR(20) 

 
SET NOCOUNT ON 
 
INSERT #teams SELECT 'Boston', 'Celtics' 
INSERT #teams SELECT 'Boston', 'Bruins' 
INSERT #teams SELECT 'Boston', 'Red Sox' 
INSERT #teams SELECT 'New York', 'Yankees' 
INSERT #teams SELECT 'New York', 'Mets' 
INSERT #teams SELECT 'New York', 'Knicks' 
INSERT #teams SELECT 'New York', 'Rangers' 
INSERT #teams SELECT 'New York', 'Islanders' 
INSERT #teams SELECT 'New York', 'Jets' 
INSERT #teams SELECT 'New York', 'Giants' 
INSERT #teams SELECT 'Chicago', 'Black Hawks' 
INSERT #teams SELECT 'Chicago', 'Cubs' 
INSERT #teams SELECT 'Chicago', 'White Sox' 
INSERT #teams SELECT 'Chicago', 'Bears' 
INSERT #teams SELECT 'New England', 'Patriots' 
 
SELECT city, team, rank =  

    SELECT COUNT(*) 
    FROM #teams t2 
    WHERE t2.city = t1.city 
    AND t2.team <= t1.team 

    FROM #teams t1 
    ORDER BY city, team 
 
DROP TABLE #teams

Result
city    team    rank
------------    ------------    ----
Boston    Bruins    1
Boston    Celtics    2
Boston    Red Sox    3
Chicago    Bears    1
Chicago    Black Hawks    2
Chicago    Cubs    3
Chicago    White Sox    4
New England    Patriots    1
New York    Giants    1
New York    Islanders    2
New York    Jets    3
New York    Knicks    4
New York    Mets    5
New York    Rangers    6
New York    Yankees    7
0
Christoph_M
Christoph_M02.12.1123:46
Super, vielen Dank, dass funktioniert!
0

Kommentieren

Diese Diskussion ist bereits mehr als 3 Monate alt und kann daher nicht mehr kommentiert werden.