我有一个像这样的MySQL表:
Time Id Item Size
===== ===== ====== ====
09:15 3128 TC8991 40
09:15 3128 RD4453 20
09:15 3128 DE5874 30
10:21 2574 RF5544 40
10:21 2574 WS4441 25
11:33 3369 TG4987 30
11:58 7413 HG4539 40
我需要为Time + Id的每个组合添加一个行号,如下所示:
Row Time Id Item Size
==== ===== ===== ====== ====
1 09:15 3128 TC8991 40
2 09:15 3128 RD4453 20
3 09:15 3128 DE5874 30
1 10:21 2574 RF5544 40
2 10:21 2574 WS4441 25
1 11:33 3369 TG4987 30
1 11:58 7413 HG4539 40
我的查询是这样的:
select time, id, item, size
from transactions
有什么想法吗?
非常感谢。
答案 0 :(得分:2)
MySQL中的一种方法是使用变量:
select time, id, item, size,
(@rn := if(@ti = concat(time, id), @rn + 1,
if(@ti := concat(time, id), 1, 1)
)
) as row
from transactions cross join
(select @rn := 0, @ti := '')
order by time, id;