Необязательныйвторой параметр блока limit Допустим, теперь вместо поиска трех лучших операционистов постав
лена задача выбрать всех, кроме двух лучших (вместо награждения
лучших исполнителей банк пошлет несколько самых непроизводи
тельных операционистов на тренинг по повышению самооценки). Для
подобных ситуаций блок
limit
предоставляет необязательный второй
параметр. Если используются оба параметра, первый указывает, с ка
кой строки добавлять записи в конечный результирующий набор,
а второй – сколько строк включить. Обозначая записи порядковыми
номерами, помните, что в MySQL первой записью является запись под
номером 0. Следовательно, если стоит задача найти третьего лучшего
работника, можно сделать следующее:
mysql>
SELECT open_emp_id, COUNT(*) how_many > FROM account > GROUP BY open_emp_id > ORDER BY how_many DESC > LIMIT 2, 1; +++
| open_emp_id | how_many |
+++
| 16 | 6 |
+++
1 row in set (0.00 sec)
В этом примере нулевая и первая записи отбрасываются; включаются
записи, начиная со второй. Поскольку второй параметр блока
limit
ра
вен
1
, получаем только одну запись.
Если требуется начать со второй позиции и включить
все оставшиеся
записи, можно сделать второй аргумент блока
limit
достаточно боль
шим, чтобы все оставшиеся записи гарантированно вошли в результи
рующий набор. Если неизвестно, сколько операционистов открывали
новые счета, для выбора всех работников, кроме двух лучших, можно
было бы сделать примерно следующее:
mysql>
SELECT open_emp_id, COUNT(*) how_many > FROM account > GROUP BY open_emp_id > ORDER BY how_many DESC