powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Поиск максимального значения с группировкой
7 сообщений из 7, страница 1 из 1
Поиск максимального значения с группировкой
    #39806916
Григорий2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день,

Есть таблица CURRENCY
IDCURRENCY_CODECURRENCY_RATE1RUB0.0172RUB0.0183USD1.1534USD1.154

Курсы иногда обновляются. Актуальным считается курс с максимальным значением в поле ID.
Не подскажите, можно ли без подселекта или джойна вытащить последние актуальные курсы по всем валютам?

Что то вроде такого. Но тут джойнится то ли случайный, то ли первый попавшийся currency_rate.
select max(id),CURRENCY_CODE,CURRENCY_RATE
from CURRENCY c
group by CURRENCY_CODE;

PS. Да, можно так:
select CURRENCY_CODE,CURRENCY_RATE from CURRENCY where id in (
select max(id)
from CURRENCY c
group by CURRENCY_CODE)

Но меня интересует именно возможность вытащить это без подселекта
...
Рейтинг: 0 / 0
Поиск максимального значения с группировкой
    #39807023
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На восьмой версии - оконной функцией. На пятой - разве что с использованием переменных...
...
Рейтинг: 0 / 0
Поиск максимального значения с группировкой
    #39807070
retvizan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina,

ещё можно брать max от склейки id (дополненных слева нулями) и CURRENCY_RATE
...
Рейтинг: 0 / 0
Поиск максимального значения с группировкой
    #39807153
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
retvizanAkina,

ещё можно брать max от склейки id (дополненных слева нулями) и CURRENCY_RATEКакая древняя магия!
Я уж и забыл про нее.
...
Рейтинг: 0 / 0
Поиск максимального значения с группировкой
    #39807696
Григорий2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Видимо нельзя. Cамым оптимальным (по explain'y) оказался такой вариант:

select id,c.CURRENCY_CODE,(select CURRENCY_RATE from CURRENCY where id=max(c.id))
from CURRENCY c
group by c.CURRENCY_CODE;

Со склейкой поэкспериментирую, о таком не думал, спасибо.
...
Рейтинг: 0 / 0
Поиск максимального значения с группировкой
    #39807922
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Григорий2select idтогда уж select max(id)
...
Рейтинг: 0 / 0
Поиск максимального значения с группировкой
    #39808104
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
retvizanможно брать max от склейки id (дополненных слева нулями) и CURRENCY_RATEТак называемый "бабушкин метод"? ну... можно. Это, конечно, фуллскан, но гарантированно однопроходный - и да, при отсутствии необходимых для решения задачи ранее описанными методами индексов он, скорее всего, даже оптимален.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Поиск максимального значения с группировкой
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]