查找特定值在前一行中出现的次数

时间:2015-07-31 09:57:58

标签: mysql

我有类似的东西,并且想要在此之前完成USER1的交易次数:

USER1 - 12$
USER2 -  9$
USER1 -  8$
USER3 - 18$
USER1 - 34$

我需要这样的事情:

USER1 - 12$ - 1
USER2 -  9$ - 1
USER1 -  8$ - 2
USER3 - 18$ - 2
USER1 - 34$ - 3

最后一列显示了用户1的总交易次数。

1 个答案:

答案 0 :(得分:0)

您可以使用SELECT和本地变量:

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;

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