MySQL: использование предложения LIMIT в разделеMySql

Форум по Mysql
Ответить
Anonymous
 MySQL: использование предложения LIMIT в разделе

Сообщение Anonymous »

Каждую минуту в MariaDB 12.1.2 хранятся некоторые данные.
Для каждой минуты я хочу найти строки с помощью

Код: Выделить всё

percent_change_1h > 4 and percent_change_24h > 2;
НО только для первых 30 строк сортируются по наибольшему проценту_change_24h.
Для определенной временной метки следующий запрос работает хорошо и делает то, что мне нужно:

Код: Выделить всё

SELECT * from (
SELECT cmc_id, symbol,
percent_change_1h, percent_change_24h, cmc_rank, market_cap,
timestamp
FROM table1.listings
WHERE timestamp = '2025-12-23 09:20:00' AND cmc_rank IS NOT NULL
ORDER BY percent_change_24h DESC
LIMIT 30
) as query1
WHERE percent_change_1h > 4 and percent_change_24h > 2;
Теперь следующий шаг — сделать это не только для конкретной минуты, но и для диапазона времени (скажем, для каждой минуты > 2025-12-23 09:20:00).
На данный момент я почти достиг того, что мне нужно:

Код: Выделить всё

SELECT t.* from (
SELECT *,
ROW_NUMBER() over (partition by timestamp ORDER BY percent_change_24h DESC) AS seqnum
FROM table1.listings
WHERE timestamp >= '2025-12-23 09:20:00'
AND c_rank IS NOT NULL ORDER BY percent_change_24h DESC
) t
WHERE percent_change_1h > 4 and percent_change_24h > 2;
Единственная проблема:
Я не могу использовать предложение LIMIT в разделе по. Таким образом, набор результатов возвращает слишком много данных.
В отчаянии я попытался использовать предложение LIMIT в другой позиции, но это слишком сильно ограничивает строки/неправильно, поскольку мне понадобится предложение LIMIT при разделении:

Код: Выделить всё

SELECT t.* from (
select *,
ROW_NUMBER() over (partition by timestamp ORDER BY percent_change_24h DESC) AS seqnum
FROM table1.listings
WHERE timestamp >= '2025-12-23 09:20:00'
AND c_rank IS NOT NULL ORDER BY percent_change_24h DESC LIMIT 30
) t
WHERE percent_change_1h > 4 and percent_change_24h > 2;
Кто-нибудь знает обходной путь, как выполнить секционирование только по подмножеству данных (поминутно)?
Спасибо!

Подробнее здесь: https://stackoverflow.com/questions/798 ... rtition-by
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «MySql»