Hasil Anda lebih jelas jika Anda benar-benar memilih nilai agregat alih-alih kolom dari tabel:
SELECT SUM(id) FROM plant ORDER BY SUM(id)
Ini akan mengembalikan jumlah semua id. Ini tentu saja merupakan contoh yang tidak berguna karena agregasi akan selalu membuat hanya satu baris, sehingga tidak perlu memesan. Alasan Anda mendapatkan baris kolom qith dalam kueri Anda adalah karena MySQL memilih satu baris, tidak secara acak tetapi juga tidak deterministik. Kebetulan itu adalah kolom pertama dalam tabel dalam kasus Anda, tetapi yang lain mungkin mendapatkan baris lain tergantung pada mesin penyimpanan, kunci utama, dan sebagainya. Agregasi hanya dalam klausa ORDER BY dengan demikian tidak terlalu berguna.
Apa yang biasanya ingin Anda lakukan adalah mengelompokkan berdasarkan bidang tertentu dan kemudian mengurutkan hasil yang ditetapkan dengan cara tertentu:
SELECT fruit, COUNT(*)
FROM plant
GROUP BY fruit
ORDER BY COUNT(*)
Nah, itu pertanyaan yang lebih menarik! Ini akan memberi Anda satu baris untuk setiap buah bersama dengan jumlah total untuk buah itu. Coba tambahkan beberapa apel lagi dan urutannya akan benar-benar mulai masuk akal:
Tabel lengkap:
+----+--------+
| id | fruit |
+----+--------+
| 1 | banana |
| 2 | apple |
| 3 | orange |
| 4 | apple |
| 5 | apple |
| 6 | banana |
+----+--------+
Kueri di atas:
+--------+----------+
| fruit | COUNT(*) |
+--------+----------+
| orange | 1 |
| banana | 2 |
| apple | 3 |
+--------+----------+