2016-07-03 9 views
-1

Ich habe eine Tabelle wieSQL-Select Distinct Count und Daten aus der Tabelle

+----+----------+------------+ 
| id | order_id | service_id | 
+----+----------+------------+ 
| 1 | 3423343 | 123  | 
+----+----------+------------+ 
| 2 | 3432356 | 124  | 
+----+----------+------------+ 
| 3 | 2345643 | 123  | 
+----+----------+------------+ 
| 4 | 2313343 | 125  | 
+----+----------+------------+ 

Was will ich die Zählung jedes service_id zu bekommen, ist die Ausgabe wie diese

+------------+------+ 
| service_id | cout | 
+------------+------+ 
| 123  | 2 | 
+------------+------+ 
| 124  | 1 | 
+------------+------+ 
| 125  | 1 | 
+------------+------+ 

geben und auch zu ordnen sie in Highest -> Lowest um

ich arbeite in CakePHP 3.2

+0

wählen service_id, zählen (1) cout von thetable Gruppe von service_id Auftrag von cout – splash58

+1

Mögliche Duplikat [CakePHP: Wie kann ich die Anzahl der hasMany Datensätze in eine finden zählen] (http://stackoverflow.com/questions/3123176/cakephp-how-do-i-count-the-number-of-hasmany-records-in-a-find) – sagi

Antwort

1

Verwenden Sie Gruppe für Spalte service_id und zählen Sie die Zeilen jeder Gruppe.

SELECT 
    service_id, 
    COUNT(service_id) AS `Count` 
FROM 
    tablename -- your table name 
GROUP BY 
    service_id 
ORDER BY 
    `Count` DESC;