2017-03-06 8 views
0

Ich hoffe, das ist ein einfaches Problem, aber ich bin nicht wirklich sicher, wie man es sogar angehen. Sagen wir, ich habe einen Tisch. Ich mache eine Select-Anweisung für mehrere Spalten in dieser Tabelle. Ich möchte eine weitere Formelspalte hinzufügen, die mir die Instanznummer/Anzahl eines Wertes in einer angegebenen Spalte anzeigt. Im Grunde wie oft dieser Wert in den Daten bereits aufgetreten ist. Ein Beispiel wird es viel einfacher machen.SQL, Reihenfolge der Wert Instanz in Tabelle

Sagen wir, ich habe 2 Spalten wie folgt aus:

col1 | col2 

Orange | mike 

Orange | tim 

Banana | john 

Banana | mike 

Orange | jimmy 

Was muss ich (basierend auf col1) zu erhalten, ist dies:

col1 | col2 | newcol 

Orange | mike | 1 

Orange | tim  | 2 

Banana | john | 1 

Banana | mike | 2 

Orange | jimmy |3 

ich unter dashDB laufen bin. Aber die Abfrage, die ich ausführe, hat 7 JOIN-Anweisungen, eine ganze Menge von Unterabfragen und es ist bereits "Gruppe von" 'e eine ganze Menge anderer Spalten.

+1

select col1, col2, count (*) von tabl gruppe von col1 – rathna

+0

es ist nicht so einfach in diesem fall habe ich angst. Die Abfrage, die ich ausführe, hat 7 JOIN-Anweisungen, eine ganze Reihe von Unterabfragen und es ist bereits "Gruppe von" 'e eine ganze Reihe von anderen Spalten. –

Antwort

1

Von meinen Checks unterstützt DashDB analytische Funktionen, so sollte dies funktionieren.

select col1,col2, 
     row_number() over(partition by col1 order by col1,col2 asc) as newcol 
from mytable 
order by col1,col2; 

Hope this Nick helfen

+0

das funktioniert, danke –

1

die Sie interessieren,

wählen col1, col2, DENSE_RANK() über (Partition von col1 Auftrag von col1 , col2 asc) als newcol

Verwandte Themen