Вопрос по mysql, sql – MySQL: ограничение количества полученных результатов на основе значения столбца | Объединение запросов

8

Я провел исследование по этой проблеме, но не могу найти решение.

У меня есть следующий запрос, который дает мне список «some_id»:

<code>SELECT some_id FROM example GROUP BY some_id
</code>

И у меня есть следующий запрос, который получит список из 5 самых последних записей для строки, в которой есть & quot; some_id & quot; равно числу.

<code>SELECT * FROM example
WHERE some_id = 1
ORDER BY last_modified DESC
LIMIT 5
</code>

Как я могу получить топ-5 самых последних записей из таблицы & quot; пример & quot; для каждого "some_id", используя только один запрос? Если для «some_id» меньше 5 записей, то их можно включить, если это не усложняет задачу.

Большое спасибо!

"Я провел исследование по этой проблеме, но не могу найти решение". В самом деле? Почти идентичный вопрос был опубликован сотни раз уже только на StackOverflow.stackoverflow.com/questions/tagged/greatest-n-per-group+mysql Я уверен, что если вы посмотрите достаточно пристально, то сможете найти там что-нибудь, что сможете использовать. Mark Byers

Ваш Ответ

2   ответа
-2

Group by а такжеhaving clause для проверки лимита для каждого идентификатора ..

SELECT * FROM `example`
GROUP BY some_id
HAVING count( * ) <= 5
ORDER BY last_modified DESC

Это проверит для каждогоsome_id и проверьте, еслиnumber of rows for some_id is <=5 тогда это будет отображать результат.

Error: User Rate Limit Exceeded
9

Как ограничить количество строк на значение поля в SQL?

Я изменил его, чтобы он соответствовал моим конкретным потребностям:

SELECT * FROM
(
    SELECT *, @num := if(@some_id = some_id, @num := @num + 1, 1) as row_num,
           @some_id := some_id as some_id
    FROM example
    ORDER BY last_modified DESC
) as e
WHERE row_num <= 5
Error: User Rate Limit Exceeded
Error: User Rate Limit ExceededORDER BYError: User Rate Limit Exceeded
Error: User Rate Limit ExceededSELECT ... FROM example, (SELECT @some_id:=0, @num:=0) as init ...

Похожие вопросы