2016-11-13 3 views
0

Ich habe eine folgende DatenSeriennummern basiert auf mehreren Säulen

enter image description here

Ich möchte schaffen den Indexstand zu schaffen, wie in letzten Spalte basierend auf Region, Land, Speichertyp und Standort Spalte angezeigt. Die Regionsspalte hat für jede neue Region eine eigene Seriennummer, d. H. "APAC ist 1 und EMEA wird dann 2", ähnlich wie für andere Spalten (Land, Geschäftstyp, Standort). Ich habe versucht, Partition zu verwenden, um das Ergebnis zu erhalten, aber ich bin nicht in der Lage, gewünschte Ergebnisse zu erhalten.

Antwort

3

Verwenden Sie dense_rank() Fensterfunktion.

select *, 
     concat(
     dense_rank() over(order by Region), ',', 
     dense_rank() over(partition by Region order by Country), ',', 
     dense_rank() over(partition by Region, Country order by [Store Type]), ',', 
     dense_rank() over(partition by Region, Country, [Store Type] order by Location) 
     ) as [Index Level] 
    from Tab 
Verwandte Themen