2017-06-08 3 views
0

Für die Folge Tabelle Testtable:MySQL wie bekomme ich zuerst n Gruppen?

| Id | Name | Flags |  
|----|-------|-------|  
| 1 | name1 | 1 |  
| 2 | name2 | 1 |  
| 3 | name3 | 2 |  
| 4 | name4 | 2 |  
| 5 | name5 | 3 | 

wie von Flaggen und gibt die ersten zwei Gruppen zu gruppieren. Das heißt, ich sollte Zeilen zurück:

| 1 | name1 | 1 |  
| 2 | name2 | 1 |  
| 3 | name3 | 2 |  
| 4 | name4 | 2 | 

ich das versucht:

select * 
from TestTable 
group by Flags 
order by Flags 
limit 0,2 

jedoch die Abfrage 2 Zeilen zurückgegeben nur.

+0

In Ihrem gewünschten Ergebnis führen, gibt es nichts gruppiert ... Und Sie muss angeben, wie die "ersten" ermittelt werden. In einer relationalen Datenbank gibt es keine Reihenfolge, es sei denn, Sie geben sie an. – fancyPants

+0

nach gruppierten Schlüssel sortieren @ fancyPants –

+0

Wenn Sie gruppiert haben, zeigen Sie bitte die SQL, die es gruppiert. – trincot

Antwort

1

Sie eine Unterabfrage verwenden konnte nur die ersten beiden Fahnen zu nehmen, und kommen Sie, dass:

select  t.id, t.name, t.flags 
from  testtable t 
inner join (select distinct flags 
      from  testtable 
      order by 1 
      limit 2) filter 
     on filter.flags = t.flags; 

Sehen Sie es auf regtester.com

Verwandte Themen