25 Abhishek [2010-05-18 05:40:00]
Мне нужно запросить строку, имеющую max (значение) (т.е. 60). Итак, здесь мы получаем две строки. Из этого мне нужна строка с самой низкой отметкой времени для этого дня (т.е. 18/5/2010, 15:00 → 60)
7 ответов
37 Решение Sujee [2010-05-18 05:58:00]
Ключевые слова, такие как TOP, LIMIT, ROWNUM. и т.д. зависят от базы данных. Пожалуйста, прочитайте эту статью для получения дополнительной информации.
Oracle: можно использовать ROWNUM.
Отвечая на вопрос более конкретно:
Аналитика! Это позволяет избежать доступа к таблице дважды:
Ответ заключается в том, чтобы добавить предложение having:
это должно работать и избавиться от необходимости иметь дополнительный поднабор в предложении даты.
С уважением, Роб.
Это получает ключ от max (high_val) в таблице в соответствии с диапазоном.
-1 JBrooks [2010-05-18 05:53:00]
Самый простой ответ —
— установить тестовую таблицу под названием "t1"
— Загрузите данные. — Примечание: формат даты отличается от вопроса
— найдите строку с максимальным количеством и минимальной датой.
Я знаю, что вы можете сделать ответ "TOP 1", но обычно ваше решение становится достаточно сложным, и вы почему-то не можете его использовать.
есть результат промежуточной выборки, список строк всех прайс-листов, нужно получить все товары с минимальной ценой
в примере строки с ценами по одному товару
в данном примере в итоге должна быть всего одна строка 545119100, 500, 613.99
в итоге получаю весь набор
как получить только одну строку с минимальным значением по полю cena и сгруппировав по полю tov_id, при этом price_id тоже нужен в результирующей выборке
Я совершенно уверен, что загнал себя в угол и не могу найти выход.
Таблица Users и таблицы OrderHistories содержат более 1 миллиона записей:
Этот конкретный подзапрос — моя текущая проблема (ЧРЕЗВЫЧАЙНО неэффективная), но у меня недостаточно опыта, чтобы понять, почему и как я должен это делать (я не могу добраться отсюда!):
Кто-нибудь расскажет мне, насколько я ужасен, а затем перейдет прямо к предлагаемому улучшению?