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

Есть таблица, примерно такая

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
ID                                      PERCENT DATE
==========================================================
b10e997fde555d20c9ee2542659ab4f0	28,0	2020-09-15
154cc0bcd3d68c7b2a217ecfe9a1a321	28,0	2020-09-15
defc4c355ceabe3cb802d64d071e2213	28,0	2020-09-15
5e51f65855901e43ace9c6a909409e17	28,0	2020-09-15
8ea1a23180d5278cbd2e8f6ca8b9517f	28,0	2020-09-15
bfde8a872e9b4e7d04fdfa7c7f9137ff	28,0	2020-09-15
5a11edf017beb169d2f259cd071bfa8b	22,5	2020-09-15
89fcd226a166ad2cbbcf0f1e1969e5b9	24,0	2020-09-15
a2833f633478a1f4a745d27fbd9ac1b3	22,5	2020-09-15
150e06fc84b0a36f32dc4b124505df11	24,0	2020-09-15
c555172b459dfdb406fe5723c54594d7	22,5	2020-09-15
77cd06c6af96b8f4aa1c0988a5410eff	22,0	2020-09-15
b4952194e88444d2d6c953f9d6c93101	22,5	2020-09-15
e099ff89ae7cb80e2189e1784abb4119	22,5	2020-09-15
48878d1166dc60219e0b5a5d1022d61b	22,5	2020-09-15
173cc66062b6627bc3ae65a74bb16fb1	22,5	2020-09-15
ae2a7e7dee1c931a095969e53887bde4	22,5	2020-09-15
e00cc0ef41392016c8a8413180df1349	23,0	2020-09-15
fa22cf1823804c1d54f7780cc01dc048	22,5	2020-09-15
6dee84ff1ea170aa7a5ddc0f4fd7c9dc	22,5	2020-09-15
7aedd086e5ff405e3261adff5b59ff49	22,5	2020-09-15
d48ddd69469696e9c71b39828e0b5b0a	22,5	2020-09-15
77f5aab07c2a84b7ece473a64ea5c10e	22,0	2020-09-15
9520d9d351728dc93533b3c1d3c94249	22,0	2020-09-15
b286015e3234d14670da161c1d1ee0de	22,5	2020-09-15
a4bdca6a4a0938beac6daa4f332cf77b	22,5	2020-09-15
0f1dd0fa33e69eee531692983b566377	22,5	2020-09-15


Надо для каждого ID найти PERCENT по его максимальной дате (DATE). Как получить этот требуемый список одним запросом?

Спасибо.

P.S. Скопировал часть таблицы, поэтому тут дата одинаковая, но там их много :)
...
Рейтинг: 0 / 0
максимальное значение по последей дате
    #40002305
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
SELECT DISTINCT id, 
                MAX(`date`) `date`,
                FIRST_VALUE(percent) OVER (PARTITION BY id ORDER BY `date` DESC) percent
FROM sourcetable
...
Рейтинг: 0 / 0
максимальное значение по последей дате
    #40002346
ADMINCHIKKK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,

Код: plsql
1.
2.
SELECT DISTINCT id, MAX(`date`) `date`, FIRST_VALUE (percent) OVER (PARTITION BY id ORDER BY `date` DESC) percent
FROM percents



Выполняю так, но ошибка:

You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '(PARTITION BY id ORDER BY `date` DESC) percent
FROM taxi_percents' at line 1


не пойму что исправить...
...
Рейтинг: 0 / 0
максимальное значение по последей дате
    #40002419
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы постите в форум по MySQL, при этом даже не указываете версию (что указывает на то, что она - последняя, самая свежая) - а в итоге у Вас вообще MariaDB, и тоже неизвестной, но явно не последней, версии.
...
Рейтинг: 0 / 0
максимальное значение по последей дате
    #40002450
ADMINCHIKKK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,

Сорри, виноват :) вот версия: 5.5.60-MariaDB
Вы правы, Мария ДБ.
...
Рейтинг: 0 / 0
максимальное значение по последей дате
    #40002474
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну тогда тупо
Код: sql
1.
2.
3.
4.
SELECT DISTINCT id, 
                MAX(`date`) OVER (PARTITION BY id) `date`,
                FIRST_VALUE(percent) OVER (PARTITION BY id ORDER BY `date` DESC) percent
FROM test;
...
Рейтинг: 0 / 0
максимальное значение по последей дате
    #40002498
ADMINCHIKKK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ни в какую:

Код: sql
1.
2.
3.
4.
SELECT DISTINCT id, 
                MAX(`date`) OVER (PARTITION BY id) `date`,
                FIRST_VALUE(percent) OVER (PARTITION BY id ORDER BY `date` DESC) percent
FROM taxi_percents;



Ошибка SQL (1064): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '(PARTITION BY id) `date`,
FIRST_VALUE(percent) OVER (PARTITION ' at line 2
...
Рейтинг: 0 / 0
максимальное значение по последей дате
    #40002611
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ADMINCHIKKK,

нет там оконных функций еще
https://mariadb.com/kb/en/window-functions/ Window functions were first introduced in MariaDB 10.2.0.5.5.60-MariaDB это и есть MySQL 5.5.60
...
Рейтинг: 0 / 0
максимальное значение по последей дате
    #40002614
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
максимальное значение по последей дате
    #40003775
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_Ustinov, интересно, кто-то сравнивал скорострельность оконной выборки с традиционным запросом? Где можно почитать, а то пока у меня получается "что в лоб что по лбу" с небольшими вариациями..
...
Рейтинг: 0 / 0
максимальное значение по последей дате
    #40003998
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109
кто-то сравнивал скорострельность оконной выборки с традиционным запросом?
При отсутствии подходящего индекса - одинаковы в пределах ошибки (fullscan, чего ещё ожидать...). А вот при наличии - оконные функции рулят.
...
Рейтинг: 0 / 0
максимальное значение по последей дате
    #40004091
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina, не заметил. А индексов у меня как снега зимою .. ;)
...
Рейтинг: 0 / 0
максимальное значение по последей дате
    #40004094
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina, извиняюсь, забыл что тут нельзя посты редактировать .. :)

Я как раз поэтому и заинтересовался, про "где почитать", т.к. на запросах к астерисковому логу (120 млн записей), группирующий запрос с UNION (или номер источник или номер приемника) с подзапросом со своей группировкой, работающий по индексам выдавал результат за примерно теже самые 0.7сек, что и оконный. Сейчас к нему доступа нет, показать нечего .. ну вот и усомнился а правильно ли я готовил оконный вариант?

Буду признателен, если где-то есть "боевой пример" на воспроизвести и понять чем оно лучше. Так-то, как синтаскический сахар - оно все одно, полезно и это уже оценил и сам тоже.
...
Рейтинг: 0 / 0
максимальное значение по последей дате
    #40004154
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109,

ИМХО в теории два подзапроса с UNION
дадут тот же результат что и один Без UNION


Тут вопрос в другом что если использовать "скомпилированные" оконные функции, то
они могут сработать быстрее чем запрос с использованием переменных, хотя внутри тот же фуллскан.

в теории любая скомпилированная UDF-функция на Си будет быстрее чем "пользовательская"

ну и 0.7 сек это значит предел совершенства) хоть коси, хоть стриги

Оконные функции - для упрощения синтаксиса в основном
Прим.
Редактировать теперь можно в пределах нескольких минут
...
Рейтинг: 0 / 0
максимальное значение по последей дате
    #40004172
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_Ustinov, спасибо. Да, упрощение синтаксиса уже оценил. То, что раньше занимало по 2 экрана, теперь куда как меньше. :)
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / максимальное значение по последей дате
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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