2016-04-25 19 views
3

Ich habe diese zwei Tabellen:sortieren nach Zeilen Zahl wo Spalten Wert sind die gleichen

Kategorie:

enter image description here

und ein weiterer Tisch "thynk" genannt:

enter image description here

Jede Zeile in Tabelle thynk ist mit einer Kategorie verknüpft.

Wie auch immer, ich würde gerne wissen, ob es möglich ist, kategorie_id, die die meisten thynk enthält auswählen? (Mit postgresql)

hier also sollte ich dieses Ergebnis haben:

categorie_id 
-------------- 
      0 
      5 
      3 
+0

Ja, es möglich ist, mit Count, Group und Having, siehe hier: http://www.postgresqltutorial.com/postgresql-having/ – Roland

+0

Haben Sie noch gelernt, 'COUNT' in SQL? Und haben Sie gelernt, Aggregate nach Gruppen zu sortieren (z. B. nach Kategorie)? –

+0

nein Ich habe gerade eine Gruppe entdeckt :) – Fantasim

Antwort

1

Sie könnten Gruppe von categoire_id, zählen die Ergebnisse in jeder Gruppe und Ordnung entsprechend:

SELECT categorie_id, COUNT(*) 
FROM  thynk 
GROUP BY categorie_id 
ORDER BY 2 DESC 
+0

Vielen Dank! es funktioniert perfekt! – Fantasim

+2

Das 'COUNT (*)' ist in der Anweisung 'SELECT' nicht unbedingt erforderlich, um das OP zu beantworten. Haben Sie einfach 'SELECT kategorie_id VON thynk GROUP BY kategorie_id ORDER BY COUNT (*) DESC' – MatBailie

+0

Nun, und wenn ich durch einen Wert mit meiner Anzahl und Limit durch Nummer nicht alle Spalten auswählen möchten, kann ich übergeben Argumente bei count? – Fantasim

Verwandte Themen