2016-10-19 13 views
0

Ich habe gefragt, wie man Gruppen ohne Case erstellen kann.Wie erstellt man Gruppen ohne Groß-/Kleinschreibung wann?

ich Daten wie dieses:

date1 date2 random num,ber rank within group 
    01.01.2016 01.01.2016 0.6818 1 
    01.01.2016 01.01.2016 0.5213 2 
    01.01.2016 01.01.2016 0.5017 3 
01.01.2016 01.01.2016 0.4305 4 
01.01.2016 01.01.2016 0.4087 5 
01.01.2016 01.01.2016 0.3646 6 
31.1.2016 31.1.2016 0.173 1 
31.1.2016 31.1.2016 0.1577 2 
31.1.2016 31.1.2016 0.1577 3 
31.1.2016 31.1.2016 0.1462 4 
31.1.2016 31.1.2016 0.1462 5 
04.02.2016 04.02.2016 0.5279 1 
04.02.2016 04.02.2016 0.4354 2 
04.02.2016 04.02.2016 0.4098 3 
04.02.2016 04.02.2016 0.387 4 
04.02.2016 04.02.2016 0.3823 5 

Ich möchte eine neue attibute als ANZAHL DER Gruppe mit dem Namen erstellen. Ich möchte

01.01.2016 = 1, 31.01.2016 as 2, 04.02.2016 as 3. 

haben Kennen Sie einen Trick, wie man es tun, ohne Fall, wenn?

Ich habe versucht:

rank() over (partition by a.date1 order by a.date2 ASC) as group_number 

aber ich bin nur 1 in ihm zu bekommen.

Vielen Dank für Ihre Hilfe. Bara

+0

Wenn es irgendeine Art von logischer Funktion ist (das heißt alle 3 Wochen oder so), dann können Sie Mathematik verwenden ... also lass uns darüber, wie Sie dies tatsächlich zu entscheiden. –

+0

Es gibt keine solche Funktion. Termine sind zufällig. – HeadOverFeet

+0

Sie haben zwei Datumsspalten, möchten Sie nur die erste oder nur die zweite oder die eindeutige Kombination der beiden Daten nummerieren? – schurik

Antwort

3

Wenn ich verstehe, möchten Sie Rang von irgendwelchen Daten erhalten. Sie dürfen DENSE_RANK()

select date1, date2 ,random_number, DENSE_RANK() over (order by date1) as rnk 
from your_table 
+0

Das ist großartig! Ich habe es nur mit Partition versucht und es hat nicht funktioniert :) großartig! Danke, du hast mir viel Zeit gespart! – HeadOverFeet

Verwandte Themen