我无法编写一个运行正常的查询。如果有人可以帮助我,我很感激。
有一个表包含特定索引的多个记录。我需要总结每条记录的最后一条。
表示例:
+--------+--------+--------+
| id_cop |id_comp | value |
+--------+--------+--------+
| 1 | 1 | 1000 |
| 1 | 1 | 2000 |
| 1 | 1 | 2200 |
| 2 | 2 | 1100 |
| 3 | 2 | 3000 |
| 3 | 2 | 3400 |
| 4 | 3 | 4000 |
| 5 | 4 | 1100 |
+--------+--------+--------+
我只需要将每个id_cop索引的最后一条记录加起来WHERE id_comp< = 4。
在这种情况下,结果应为2200 + 1100 + 3400 + 4000 + 1100。
任何线索?
感谢。
答案 0 :(得分:0)
请试一试:
SELECT
SUM(t.`value`) AS summedValue
FROM
(
SELECT
id_cop,
`value`,
id_comp,
IF(@cop_id = id_cop, @rank := @rank + 1, @rank := 0) rankNumber,
@cop_id := id_cop
FROM coptable , (SELECT @cop_id := -1, @rank := 0) var
WHERE id_comp <= 4
ORDER BY id_cop , created_at DESC
) AS t
WHERE t.rankNumber = 0
GROUP BY t.rankNumber;
注意:我在这里使用了表名coptable
。替换您的coptable
。