Twoje wyniki będą bardziej przejrzyste, jeśli wybierzesz z tabeli wartości zbiorcze zamiast kolumn:
SELECT SUM(id) FROM plant ORDER BY SUM(id)
To zwróci sumę wszystkich identyfikatorów. Jest to oczywiście bezużyteczny przykład, ponieważ agregacja zawsze utworzy tylko jeden wiersz, stąd nie ma potrzeby porządkowania. Powodem, dla którego w zapytaniu jest wiersz qith, jest to, że MySQL wybiera jeden wiersz, nie losowo, ale też nie deterministycznie. Tak się składa, że w twoim przypadku jest to pierwsza kolumna w tabeli, ale inne mogą otrzymać kolejny wiersz w zależności od silnika magazynu, kluczy podstawowych i tak dalej. Agregacja wyłącznie w klauzuli ORDER BY nie jest więc zbyt użyteczna.
To, co zwykle chcesz zrobić, to pogrupować według określonego pola, a następnie uporządkować zestaw wyników w jakiś sposób:
SELECT fruit, COUNT(*)
FROM plant
GROUP BY fruit
ORDER BY COUNT(*)
Teraz to ciekawsze zapytanie! To da ci jeden rząd dla każdego owocu wraz z całkowitą liczbą dla tego owocu. Spróbuj dodać więcej jabłek, a kolejność zacznie mieć sens:
Pełna tabela:
+----+--------+
| id | fruit |
+----+--------+
| 1 | banana |
| 2 | apple |
| 3 | orange |
| 4 | apple |
| 5 | apple |
| 6 | banana |
+----+--------+
Powyższe zapytanie:
+--------+----------+
| fruit | COUNT(*) |
+--------+----------+
| orange | 1 |
| banana | 2 |
| apple | 3 |
+--------+----------+