Sql 按特定顺序为每个外键选择前5条记录

Sql 按特定顺序为每个外键选择前5条记录,sql,mysql,Sql,Mysql,我有一张三列的桌子 fk_id, sort_column, value_column 对于每个fk_uuid,我希望按排序列检索前5条记录的顺序 我已经试了好几个小时了,我一点也不知道怎么做 我正在使用MySQL 如果有任何帮助,我将不胜感激 马克 编辑: 我可能应该澄清我正在寻找的输出格式: 我想要两列,fk id和value_列 对于每个值,fk id只会重复5次 我想这样做的原因是因为稍后我需要对这个结果集进行一些计算,比如计算每个fk_id的平均值和总和,我认为这是不可能的。 您可能必

我有一张三列的桌子

fk_id,
sort_column,
value_column
对于每个fk_uuid,我希望按排序列检索前5条记录的顺序

我已经试了好几个小时了,我一点也不知道怎么做

我正在使用MySQL

如果有任何帮助,我将不胜感激

马克

编辑: 我可能应该澄清我正在寻找的输出格式: 我想要两列,fk id和value_列 对于每个值,fk id只会重复5次


我想这样做的原因是因为稍后我需要对这个结果集进行一些计算,比如计算每个fk_id的平均值和总和,我认为这是不可能的。 您可能必须使用脚本语言为每个fk_id单独执行此操作


我可能错了

使用,然后添加
和行号<5
这将满足您的要求

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
选择t1.fk\u id,t1.value\u列
从表中选择t1
左联接表为t2
在t1.fk_id=t2.fk_id和t1.sort_列