2016-07-28 5 views
0

Mein Tabellenschema (State String, Stadt String, Größe int)hive Ausdruck nicht in der Gruppe von Schlüsselgröße

Hier ist meine Eingangsdaten

Karnataka,Bangalore,200 
Karnataka,Mysore,50 
Karnataka,Bellary,100 
Karnataka,Mangalore,10 
Andhra pradesh,Chittoor, 25 
Andhra pradesh,nellore, 15 
Andhra pradesh,guntur, 20 
Andhra pradesh,tirupathi, 30 
Andhra pradesh,vizag, 35 
Andhra pradesh,kadapa, 45 

Ich will Top-2 Stadt von der abrufen Zustand zusammen mit Größe, ich möchte die Ausgabe wie folgt.

(Andhra pradesh,{(35),(30)},{(vizag),(tirupathi)}) 
(Karnataka,{(200),(100)},{(Bangalore),(Bellary)}) 

Ich habe die Abfrage wie folgt geschrieben, aber ich bin immer Fehler als Ausdruck nicht in der Gruppe nach Größe, plz mir helfen.

select * from statefile groyp by state,city order by size limit 2; 

danke im voraus.

Antwort

1

würden Sie row_number() verwenden:

select sf.* 
from (select sf.*, 
      row_number() over (partition by state order by size desc) as seqnum 
     from statefile sf 
    ) sf 
where seqnum <= 2; 
+0

Es wird funktionieren, wenn Sie nur durch staatliche Stadt statt Partition ändern. Schau dir einfach die Spaltennamen an, ich habe die Frage bearbeitet. –

+1

@charantej. . . Vielen Dank. –

+0

Dank Charan Gordonits arbeiten :) – user2572432

Verwandte Themen