2015-06-11 3 views
0

У меня есть таблица 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 

мне нужно поставить номер строки для каждой комбинации времени + 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 

Любые идеи?

спасибо.

ответ

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; 
+0

Нерешенные, спасибо. –

Смежные вопросы