Проблем:
Искате да намерите кои редове съхраняват най-голямата числова стойност в дадена колона.
Пример:
Нашата база данни има таблица с име student с данни в следните колони:id , first_name , last_name и grade .
| id | first_name | фамилно_име | клас |
|---|---|---|---|
| 1 | Лиза | Джаксън | 3 |
| 2 | Гари | Лари | 5 |
| 3 | Том | Мишлен | 2 |
| 4 | Мартин | Баркър | 2 |
| 5 | Ели | Черно | 5 |
| 6 | Мери | Симпсън | 4 |
Нека намерим учениците с най-високи оценки.
Решение:
SELECT id, first_name, last_name, grade FROM student WHERE grade = (SELECT MAX(grade) FROM student);
Ето резултата:
| id | first_name | фамилно_име | клас |
|---|---|---|---|
| 2 | Гари | Лари | 5 |
| 5 | Ели | Черно | 5 |
Дискусия:
За да намерите максималната стойност на колона, използвайте MAX() агрегатна функция; необходимо е име на колона или израз, за да се намери максималната стойност. В нашия пример подзаявката връща най-високото число в оценката на колоната (подзаявка:SELECT MAX(grade) FROM student ). Основната заявка показва идентификатор, име и фамилия и тяхната оценка. За показване само на редовете с максимална стойност сред всички стойности в колоната (напр. SELECT MAX(grade) FROM student ), използвайте WHERE с подзаявка. В WHERE поставете името на колоната със сравнимата стойност към стойността, върната от агрегатната функция в подзаявката (в нашия пример:WHERE grade = (SELECT MAX(grade) FROM student) ).