इस मुद्दे को हल करते समय उपयोगकर्ता परिभाषित चर आसान हो जाते हैं। यह काम करना चाहिए:
select g, x, counter from (
select g, x,
@counter := if (g = @prev_g, @counter + 1, 1) counter,
@prev_g := g
from tb, (select @counter := 0, @prev_g := null) init
order by g, x
) s
यदि आपको चौथे कॉलम से वास्तव में कोई आपत्ति नहीं है तो आप बाहरी चयन को सुरक्षित रूप से हटा सकते हैं। इससे प्रदर्शन में काफी सुधार होगा।