Запросы «делай то, что я думаю».
Среди программистов распространено заблуждение, что СУБД может предположить, какое именно значение столбца bugid вы хотите получить в отчете, основываясь только на том, что в другом столбце используется функция МАХ().
Интернет магазин товаров для творчества в Оренбурге предлагает богатый выбор материалов, для вашего хобби можно http://orangecat.su/catalog/?SECTION_ID=12.
Многие считают, что если в запросе выбирается наибольшее значение, то другие названные столбцы возьмут значения из той строки, в которой находится искомое наибольшее значение.
СУБД не может произвести такой вывод в нескольких случаях.
• Если две ошибки имеют одинаковые значения в столбце date_reported и они являются наибольшими значениями в группе, какой идентификационный номер из этих двух ошибок столбца bug_id должен отобразиться в отчете?
• Если вы сделали запрос для двух различных агрегатных функций, например МАХ () и MIN (), они, вероятно, соответствуют двум различным строкам в группе. Какое тогда значение столбца bug_id запрос должен вывести для данной группы?
Файл примера: Groups/anti/maxandmin.sql
SELECT product_id, MAX(date_reported) AS latest,
MIN(date_reported) AS earliest, bug_id FROM Bugs JOIN BugsProducts USING (bug_id) GROUP BY product_id;
Если ни одна из строк в таблице не соответствует значению, возвращенному агрегатной функцией, каково значение bug_id? Такое часто случается при использовании функций AVG (), COUNT (), и SUM ().
Файл примера: Groups/anti/sumbyproduct.sql
SELECT product_id, SUM(hours) AS total_project_estimate, bug_ id
FROM Bugs JOIN BugsProducts USING (bug_id) GROUP BY product_id.
Опубликовал vovan666
August 16 2013 07:32:18 ·
0 Комментариев ·
3449 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.