У меня есть таблица с тремя столбцами
fk_id,
sort_column,
value_column
для каждого fk__id_ Я бы хотел получить первые 5 записей порядка sort_column
Я пробовал это в течение нескольких часов, и у меня нет ни малейшего представления о том, как это сделать.
Я использую MySQL
Буду благодарен за любую помощь
Марк
EDIT: Я должен, вероятно, уточнить формат вывода, который я ищу: Я хочу два столбца: fk id и value_column fk id будет просто повторяться 5 раз для каждого значения
причина, по которой я хочу это сделать, потому что позже мне нужно сделать некоторые вычисления в этом наборе результатов, например, вычисление среднего значения и суммы для каждого fk_id
Используйте этот код, а затем добавьте AND row_number < 5
Я не думаю, что это можно сделать. Вероятно, вам придется использовать язык сценариев для этого отдельно для каждого fk_id
Я мог ошибаться
Это сделает то, что вы ищете.
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