Гость
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Поиск максимального значения с группировкой / 7 сообщений из 7, страница 1 из 1
26.04.2019, 16:48
    #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
26.04.2019, 21:48
    #39807023
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск максимального значения с группировкой
На восьмой версии - оконной функцией. На пятой - разве что с использованием переменных...
...
Рейтинг: 0 / 0
26.04.2019, 23:42
    #39807070
retvizan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск максимального значения с группировкой
Akina,

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

ещё можно брать max от склейки id (дополненных слева нулями) и CURRENCY_RATEКакая древняя магия!
Я уж и забыл про нее.
...
Рейтинг: 0 / 0
29.04.2019, 15:57
    #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
29.04.2019, 20:35
    #39807922
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск максимального значения с группировкой
Григорий2select idтогда уж select max(id)
...
Рейтинг: 0 / 0
30.04.2019, 07:55
    #39808104
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск максимального значения с группировкой
retvizanможно брать max от склейки id (дополненных слева нулями) и CURRENCY_RATEТак называемый "бабушкин метод"? ну... можно. Это, конечно, фуллскан, но гарантированно однопроходный - и да, при отсутствии необходимых для решения задачи ранее описанными методами индексов он, скорее всего, даже оптимален.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Поиск максимального значения с группировкой / 7 сообщений из 7, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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