Wenn ich eine Tabelle und Daten wie diese habe:
ID | Name | Group
1 Apple A
2 Boy A
3 Cat B
4 Dog C
5 Elep C
6 Fish C
und ich möchte es entsprechend der Summe der Gruppe vom kleinsten zum größten Wert bestellen, wie: A - 2 Datensätze, B - 1 Datensatz, C - 3 Datensätze, so wird es
3 Cat B
1 Apple A
2 Boy A
4 Dog C
5 Elep C
6 Fish C
Ich habe es versucht
$sql = "SELECT ID,Name FROM table ORDER BY COUNT(Group)";
aber es gibt nur ein Ergebnis für mich.
Gibt es irgendwelche Hinweise? Vielen Dank.
Sie müssen zuerst die Daten zusammenfassen, dies kann mit der GROUP BY-Klausel erfolgen:
SELECT Group, COUNT(*)
FROM table
GROUP BY Group
ORDER BY COUNT(*) DESC
Mit dem Schlüsselwort DESC können Sie die höchste Anzahl zuerst anzeigen, ORDER BY-Standardaufträge in aufsteigender Reihenfolge, wobei die niedrigste Anzahl zuerst angezeigt wird.
Versuchen :
SELECT count(*),group FROM table GROUP BY group ORDER BY group
nach absteigender Anzahl bestellen
SELECT count(*),group FROM table GROUP BY group ORDER BY count(*) DESC
Dadurch werden die Ergebnisse nach der group
-Spalte gruppiert, die group
und die count
zurückgibt, und die Reihenfolge in group
-Reihenfolge
SELECT * FROM table
group by `Group`
ORDER BY COUNT(Group)
SELECT Group, COUNT(*) FROM table GROUP BY Group ORDER BY Group
oder bei der Zählung bestellen
SELECT Group, COUNT(*) AS count FROM table GROUP BY Group ORDER BY count DESC
... keine der anderen Antworten scheint das zu tun, was der Fragesteller gefragt hat.
Für eine Tabelle mit dem Namen "Dinge" mit Spalte "Gruppe":
SELECT
things.*, counter.count
FROM
things
LEFT JOIN (
SELECT
things.group, count(things.group) as count
FROM
things
GROUP BY
things.group
) counter ON counter.group = things.group
ORDER BY
counter.count ASC;
was gibt:
id | name | group | count
---------------------------
3 | Cat | B | 1
1 | Apple | A | 2
2 | Boy | A | 2
4 | Dog | C | 3
5 | Elep | C | 3
6 | Fish | C | 3
Unten gibt mir das Gegenteil von dem, was Sie haben. (Spalte der Benachrichtigungsgruppe)
SELECT
*
FROM
myTable
GROUP BY
Group_value,
ID
ORDER BY
count(Group_value)
Lass es mich wissen, wenn es dir gut geht ...
Ich versuche zu bekommen, was du willst ...
Q. Listen Sie den Namen jeder Show und die Anzahl der verschiedenen Zeiten auf, zu denen sie stattgefunden hat.
event_id show_id event_name judge_id
0101 01 Dressage 01
0102 01 Jumping 02
0103 01 Led in 01
0201 02 Led in 02
0301 03 Led in 01
0401 04 Dressage 04
0501 05 Dressage 01
0502 05 Flag and Pole 02
Ans:
select event_name, count(show_id) as held_times from event
group by event_name
order by count(show_id) desc
Versuchen Sie es mit der folgenden Abfrage:
SELECT
GROUP,
COUNT(*) AS Total_Count
FROM
TABLE
GROUP BY
GROUP
ORDER BY
Total_Count DESC