Không được kiểm tra, nhưng điều này sẽ thực hiện thủ thuật:
SELECT
IF(@prev != a.clientid, @rownum:=1, @rownum:[email protected]+1) as rownumber, @prev:=a.clientid, a.*
FROM (
SELECT
visitdate,
clientid
FROM visit, (SELECT @rownum := 0, @prev:='') sq
ORDER BY clientid,visitdate
) a
Và btw, không có "chức năng @rownum", nó chỉ là một số "giải pháp" tự chế, @rownum chỉ là một biến. Bạn cũng có thể đặt tên cho nó là @w Anything.