row_number() in action

SELECT
      tt.*, 
      row_number() over (partition by tt.xcode, tt.zonid, tt.agreemn order by tt.dpoint ) r  
FROM ( SELECT xcode, zonid, agreemn, dpoint
       FROM dev_ep_month 
       WHERE dpoint like 2009||'%'  
       GROUP BY xcode, zonid, agreemn, dpoint 
       ORDER BY zonid, dpoint, xcode, agreemn ) tt

Result:

Simple example of rows ordering:

SELECT tt.*, 
      row_number() over (partition by columnName order by columnName ) r  
FROM someTable tt