2017-05-12 3 views
-2

auswählen Kann mir bitte jemand dabei helfen.Wie Mindestwerte für doppelte IDs mit Bienenstock

Ich habe Daten wie diese

**id,age,name** 
10,25,abc 
10,35,def 
20,45,ghi 
20,55,jkl 
20,65,mno 
30,40,pqr 
30,50,stu 
30,70,vwr 
40,20,yza 
40,25,fdf 
40,25,dgh 
40,20,sfs 

Jetzt habe ich das Endergebnis, wie unten

+------+------+ 
| id | age | 
+------+------+ 
| 10 | 25 | 
| 20 | 45 | 
| 30 | 40 | 
| 40 | 20 | 
| 40 | 20 | 
+------+------+ 

Ich bin in der Lage, dies zu tun in mysql erhalten möchten aber als hive unterstützen nicht mehrere Argumente Unterabfrage, so dass ich nicht in der Lage bin, erwünschtes Ergebnis in Bienenstock zu bekommen.

Ich habe versucht, dies mit Hive Join aber keinen Erfolg zu tun.

Vielen Dank im Voraus für Hilfe !!

+0

din't Diese Abfrage select id, min (Alter) aus tr Gruppe von id; Arbeit ? Welchen Fehler bekommst du? Was hast du in Hive versucht? –

+0

Nein, das hat nicht funktioniert.query "ID auswählen, Alter von test1 wo (id, Alter) in (wählen Sie distinct (id), min (Alter) von test1 group by id)" funktioniert gut in mysql, aber es gibt Syntaxfehler in Hive bcz zwei Spalten werden nicht in IN-Klausel unterstützt. –

+0

Ich denke, das ist nur möglich mit Hive Join, aber ich bin nicht in der Lage, herauszufinden, wie zu tun ist. –

Antwort

0

Andere Möglichkeit, die erwartete Ausgabe zu implementieren.

SELECT id, 
     age 
FROM 
    (SELECT id, 
      age 
    FROM tblname) a LEFT SEMI 
JOIN 
    (SELECT id, 
      MIN(age) age 
    FROM tblName 
    GROUP BY id) b ON a.id=b.id 
AND a.age=b.age 
0
select id 
     ,age 

from (select id 
       ,age 

       ,rank() over 
       (
        partition by id 
        order by  age 
       ) as rnk 

     from mytable 
     ) t 

where t.rnk = 1 

+----+-----+ 
| id | age | 
+----+-----+ 
| 10 | 25 | 
| 20 | 45 | 
| 30 | 40 | 
| 40 | 20 | 
| 40 | 20 | 
+----+-----+ 
+0

Siehe aktualisierte Antwort –

+0

Ja, das ist genauer..Können wir gleich mit linken Semi verbinden und bei ID und Alter beitreten .. –

+0

@ManishSarafBhardwaj - Was wäre die Motivation dafür? –

Verwandte Themen