2016-03-29 10 views
0

Ich habe diese Tabelle "test"Wie bekomme ich das erste Vorkommen einer Gruppe mit allen Spalten, mit postgresSql oder jpa?

id, limite, unidade, algo 
1 1  1  aegeg 
2 1  1  srhrh 
3 2  1  gesrsrhbg 
4 2  1  egWRG 
5 2  2  ftgjd\h 

ID ist einzigartig, aber algo ist nicht eindeutig.

Ich möchte in der Ausgabe alle Spalten.

Ich möchte mit limite und unidade gruppieren.

Ich mag die folgende Ausgabe, die ich mit produzieren kann:

select limite, unidade 
from test 
group by limite, unidade 

limite, unidade 
1  1 
2  1 
2  2 

plus die Spalten, id und algo, vom ersten Auftreten der Gruppe, die

id, limite, unidade, algo 
1 1  1  aegeg 
3 2  1  gesrsrhbg 
5 2  2  ftgjd\h 

sein würde, aber ich Ich weiß nicht, wie ich es machen soll.

+0

Es gibt viele Antworten auf diese: https://stackoverflow.com/questions/tagged/postgresql+greatest-n-per-group –

Antwort

0
select a.id, a.limite, a.unidade, t.algo 
from (
    select 
     min(id) as id, 
     limite, 
     unidade 
    from test 
    group by 
     limite, 
     unidade 
) a 
    left join test t on t.id = a.id 
+0

Oh, danke Shpioni, es funktionierte, habe ich versucht, Ihre Antwort auf upvote aber ich habe keinen Ruf, es zu tun. Jetzt werde ich versuchen, es auf jpa zu reproduzieren. –