|
|
|
Выбор последних значений курса валют
|
|||
|---|---|---|---|
|
#18+
Структура: id, cur, val, dt Пример: 320, RUR, 69, 2015-12-24 10:00:02 319, EUR, 0.9, 2015-12-24 10:00:00 318, RUR, 68, 2015-12-24 09:00:00 317, EUR, 0.8, 2015-12-24 09:00:00 316, RUR, 67, 2015-12-24 08:00:00 315, EUR, 0.7, 2015-12-24 08:00:00 314, GBP, 0.6, 2015-12-24 08:00:00 Подскажите, пожалуйста, как выбрать актуальные курсы? У меня что-то какие-то монстроидальные запросы получаются, либо не правильно работающие. Т.е. результат должен быть такой: 320, RUR, 69, 2015-12-24 10:00:02 319, EUR, 0.9, 2015-12-24 10:00:00 314, GBP, 0.6, 2015-12-24 08:00:00 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2015, 11:48 |
|
||
|
Выбор последних значений курса валют
|
|||
|---|---|---|---|
|
#18+
авторВыбор последних значенийприкреплённые темы? не, не слышал... FAQ: Выборка первой/последней записи в группах ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2015, 11:51 |
|
||
|
Выбор последних значений курса валют
|
|||
|---|---|---|---|
|
#18+
antonv, В базе существует дополнительная таблица валют (справочник) ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2015, 11:52 |
|
||
|
Выбор последних значений курса валют
|
|||
|---|---|---|---|
|
#18+
Если возникает необходимость ИСКАТЬ последний/актуальный курс, то какой смысл в существовании и получении в выборке поля ID? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2015, 12:01 |
|
||
|
Выбор последних значений курса валют
|
|||
|---|---|---|---|
|
#18+
miksoftantonv, В базе существует дополнительная таблица валют (справочник) ? Нет, не существует, только эта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2015, 12:05 |
|
||
|
Выбор последних значений курса валют
|
|||
|---|---|---|---|
|
#18+
AkinaЕсли возникает необходимость ИСКАТЬ последний/актуальный курс, то какой смысл в существовании и получении в выборке поля ID? Существование, полагаю, ничем не мешает. В контексте вопроса, во всяком случае. А без выборки можно обойтись. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2015, 12:10 |
|
||
|
Выбор последних значений курса валют
|
|||
|---|---|---|---|
|
#18+
antonvmiksoftantonv, В базе существует дополнительная таблица валют (справочник) ? Нет, не существует, только эта.Тогда, увы, см. FAQ: Выборка первой/последней записи в группах. Если бы табличка-справочник была, то можно было бы существенно улучшить быстродействие. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2015, 12:57 |
|
||
|
Выбор последних значений курса валют
|
|||
|---|---|---|---|
|
#18+
miksoftantonvпропущено... Нет, не существует, только эта.Тогда, увы, см. FAQ: Выборка первой/последней записи в группах. Если бы табличка-справочник была, то можно было бы существенно улучшить быстродействие. Думаю, что смогу сделать такую таблицу. Т.е. давайте предположим, что она есть. Но ведь тогда как раз и нужно в ту тему из FAQ и привет монстроидальный запрос для простой задачи? Я-то надеялся обойтись чем-то простеньким, вроде: Код: sql 1. или Код: sql 1. Но, естественно, не прокатило. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2015, 13:09 |
|
||
|
Выбор последних значений курса валют
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2015, 14:45 |
|
||
|
Выбор последних значений курса валют
|
|||
|---|---|---|---|
|
#18+
Alex_Ustinovantonv, ну таблица небольшая, используйте "хинтик" вам же ссылку дали вот здесь от яростного меча Этот метод работает, но именно подобное я и назвал монстроидальным в первом посте. И табличка-то не маленькая, вобщем-то. Каждый день, каждый час, куча разных валют. Наверное и правда проще справочник валют завести. Но даже в этом случае решение кажется каким-то неправильным с точки зрения быстродействия. Получается тоже с вложенными селектами, но хотя бы чуть менее навороченно: Код: sql 1. 2. 3. 4. 5. 6. Вобщем, жаль, что простым селектом нельзя решить наипростейшую задачу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2015, 15:25 |
|
||
|
Выбор последних значений курса валют
|
|||
|---|---|---|---|
|
#18+
antonvВобщем, жаль, что простым селектом нельзя решить наипростейшую задачу.Задача - простая, но и селект простой. Это вам он кажется сложным :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2015, 05:21 |
|
||
|
Выбор последних значений курса валют
|
|||
|---|---|---|---|
|
#18+
Более интуитивно понятный: Выбрать последнюю строку для каждого курса. SELECT t1.* FROM `currents` t1 WHERE t1.`dt` = (SELECT MAX(`dt`) FROM `currents` WHERE `cur` = t1.`cur`) GROUP BY t1.`cur` Надо добавить индекс `dt`. При желании вместо `dt` можно использовать `id`. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2016, 05:00 |
|
||
|
Выбор последних значений курса валют
|
|||
|---|---|---|---|
|
#18+
ArtemeeyБолее интуитивно понятный: Выбрать последнюю строку для каждого курса. SELECT t1.* FROM `currents` t1 WHERE t1.`dt` = (SELECT MAX(`dt`) FROM `currents` WHERE `cur` = t1.`cur`) GROUP BY t1.`cur` Надо добавить индекс `dt`. При желании вместо `dt` можно использовать `id`. ...крутой замес... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2016, 05:38 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=39142932&tid=1832308]: |
0ms |
get settings: |
8ms |
get forum list: |
18ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
163ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 202ms |
| total: | 450ms |

| 0 / 0 |
