выберите первые 5 записей в определенном порядке для каждого внешнего ключа

0

У меня есть таблица с тремя столбцами

fk_id,
sort_column,
value_column

для каждого fk__id_ Я бы хотел получить первые 5 записей порядка sort_column

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

Я использую MySQL

Буду благодарен за любую помощь

Марк

EDIT: Я должен, вероятно, уточнить формат вывода, который я ищу: Я хочу два столбца: fk id и value_column fk id будет просто повторяться 5 раз для каждого значения

причина, по которой я хочу это сделать, потому что позже мне нужно сделать некоторые вычисления в этом наборе результатов, например, вычисление среднего значения и суммы для каждого fk_id

Теги:

3 ответа

1
Лучший ответ

Используйте этот код, а затем добавьте AND row_number < 5

  • 0
    Итак ... я получу очки? :)
0

Я не думаю, что это можно сделать. Вероятно, вам придется использовать язык сценариев для этого отдельно для каждого fk_id

Я мог ошибаться

0

Это сделает то, что вы ищете.

SELECT t1.fk_id, t1.value_column
FROM table AS t1
LEFT JOIN table AS t2
    ON t1.fk_id=t2.fk_id AND t1.sort_column < t2.sort_column
WHERE t2.fk_id IS NULL
ORDER BY t1.sort_column DESC
LIMIT 5

Ещё вопросы

Сообщество Overcoder
Наверх
Меню