Допустим, у нас стоит задача («фактуру» беру от фонаря, чисто чтоб под иллюстрацию решений канало): есть у нас, к примеру, таблица учеников (Students), в ней, помимо прочего, есть такие поля, как ФИО (Name), класс (ClassId) и показатель успеваемости (Performance). Нам надо (ну, скажем, для доски почёта) выбрать учеников с наилучшей успеваемостью по каждому классу. Запущено всё это на MS SQL Server. Так вот. Есть решение очевидное (для нахватавшегося SQL по верхам) и есть решение правильное (для умеющего в хитрозадые особенности). Очевидное решение (для тех, кто дальше джойнов не зашёл): скрестить...
Кроме фильтров и сортировок (прошлый урок), в SELECT запросах можно также ограничивать выборку. Например, когда вам нужные не все данные, а скажем только первые 10 строк. Для этого существует конструкция LIMIT и давайте попробуем вывести 5 самых дорогих товаров. SELECT * FROM products ORDER BY price DESC LIMIT 5 Разберем запрос. Сперва мы получаем все товары, отсортированные по цене в обратном порядке ORDER BY price DESC. То есть дорогие товары будут сверху. А затем мы указываем LIMIT 5, что означает, что нам нужны только 5 первых записей. Так мы получаем таблицу самых дорогих товаров. LIMIT можно использовать совместно с конструкций WHERE...