Mysql 查找某个值在前几行中出现的次数

Mysql 查找某个值在前几行中出现的次数,mysql,Mysql,我有类似的东西,希望USER1在那一刻之前完成的转换次数: USER1 - 12$ USER2 - 9$ USER1 - 8$ USER3 - 18$ USER1 - 34$ 用户1-12$ 用户2-9$ 用户1-8$ 用户3-18$ 用户1-34$ 我需要这样的东西,请: USER1 - 12$ - 1 USER2 - 9$ - 1 USER1 - 8$ - 2 USER3 - 18$ - 2 USER1 - 34$ - 3 用户1-12$-1 用户2-9$-1 用户1-8$-2 用户

我有类似的东西,希望USER1在那一刻之前完成的转换次数:

USER1 - 12$ USER2 - 9$ USER1 - 8$ USER3 - 18$ USER1 - 34$ 用户1-12$ 用户2-9$ 用户1-8$ 用户3-18$ 用户1-34$ 我需要这样的东西,请:

USER1 - 12$ - 1 USER2 - 9$ - 1 USER1 - 8$ - 2 USER3 - 18$ - 2 USER1 - 34$ - 3 用户1-12$-1 用户2-9$-1 用户1-8$-2 用户3-18$-2 用户1-34$-3
最后一列显示用户1的总事务数。

您可以使用SELECT和local变量:

SET @a=0;
SELECT yourtable.*, IF(user='USER1',@a:=@a+1,@a) 'user1-transactions' FROM yourtable;
或者您甚至可以不显示非USER1行的事务计数:

SET @a=0;
SELECT yourtable.*, IF(user='USER1',@a:=@a+1,NULL) 'user1-transactions' FROM yourtable;

请注意,这取决于从表中检索行的顺序。如果向查询中添加
orderby
,或为表创建索引,则会更改结果

非常感谢。如果可以的话,请进行以下评估:您知道视图中可以使用的替代方案吗?因为它们不允许使用变量。谢谢