假设我有一个包含 3 列的表格: id, row_type, row_score
我想选择第一行(或最新的)行,但根据获取的 id 的累积分数限制选择
示例表
id | row_type | row_score
1 a 1
2 a 1
3 b 2
4 c 3
5 a 1
6 b 2
7 a 1
...
第一行的结果,累积分数限制为 4:
id | row_type | row_score
1 a 1
2 a 1
3 b 2
最佳答案
这个查询应该做你想做的。它使用一个变量来保持累积分数,然后在 HAVING
子句中使用它来限制返回的行:
SELECT t1.*, @cum_score := @cum_score + row_score AS cum_score
FROM table1 t1
JOIN (SELECT @cum_score := 0) c
HAVING cum_score <= 4
ORDER BY cum_score
输出:
id row_type row_score cum_score
1 a 1 1
2 a 1 2
3 b 2 4
关于mysql - 受累积列数量限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52698614/