2017-05-01 4 views
1

Ich habe diese 2 Datensätze mit 2 verschiedenen Lat und lang Ich möchte nur die zweite Zeile für jeden Lat, lang eg. 18,08 und 72,5 Ich möchte 40 und 20.18 abd 79.22 I 21 wollenWie bekomme ich die zweite Zeile für jede Gruppe von

folgende Eingabe resultierende Ausgabe durch andere Abfrage lassen Sie es mich wissen, wie das

depth lat long  
    35 18.08 72.5  
    40 18.08 72.5 --<-- 
    45 18.08 72.5  
    50 18.08 72.5  
    55 18.08 72.5  
    60 18.08 72.5  
    9  20.18 79.22 
    21  20.18 79.22 --<-- 
    46  20.18 79.22 
    57  20.18 79.22 
    73  20.18 79.22 
    74  20.18 79.22 

Antwort

1

Sie leicht zu erreichen, kann diese Fensterfunktion tun mit row_number :

select * 
from (
    select t.*, 
     row_number() over (
      partition by lat, long order by depth 
      ) as rn 
    from your_table t 
    ) t 
where rn = 2; 
+0

wird von lat zB Partition mit "von lat Partition" lange benötigen, lange –

+0

ich denke, es wäre besser, row_number() über (Partition von lat, long, um durch Tiefe) als rn hinzuzufügen, da es könnte Möglichkeit sein mit demselben Lat, aber unterschiedlich lang. In Ihrem Fall ändert sich row_number nicht. Aufgrund dessen besteht die Möglichkeit, ein falsches Ergebnis zu erhalten. Lass mich deine Gedanken dazu wissen. –

Verwandte Themen