ЦЕЛЬ: ПОЛУЧЕНИЕ СТРОКИ С НАИБОЛЬШИМ ЗНАЧЕНИЕМ В ГРУППЕ
Большинство программистов, изучавших SQL, приходят к использованию оператора GROUP BY В запросах, применяя некоторые одинарные функции в группах строк и получая в результате одну строку из группы, GROUP BY — мощная функция, облегчающая получение большого разнообразия комплексных отчетов и использующая относительно мало кода.
Ниже приведен пример запроса, чтобы вывести последнюю ошибку в каждом продукте в базе данных ошибок:
Файл примера: Groups/anti/groupbyproduct.sql
SELECT product_id, MAX(date_reported) AS latest FROM Bugs JOIN BugsProducts USING (bug_id) GROUP BY product_id;
Запрос будет логично расширить до запроса идентификационного номера определенной ошибки, о которой было сообщено в последнюю очередь:
Файл примера: Groups/anti/groupbyproduct.sql
SELECT product_id, MAX(date_reported) AS latest, bug_id FROM Bugs JOIN BugsProducts USING (bug_id) GROUP BY product_id;
Однако этот запрос приводит или к ошибке, или к ненадежному ответу. Это распространенный источник проблем для программистов, использующих язык SQL.
Цель состоит в том, чтобы найти не просто наибольшее (наименьшее или среднее) значение в группе, но и включить в запрос другие свойства строки, которой это значение принадлежит.
Опубликовал vovan666
August 16 2013 05:05:47 ·
0 Комментариев ·
3575 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.