does it help?
SET NOCOUNT ON;
DECLARE @t TABLE (st_no INT, year INT, month INT, sal MONEY)
INSERT INTO @t (st_no, year, month, sal) SELECT 1,2008,1,1000
INSERT INTO @t (st_no, year, month, sal) SELECT 1,2008,2,1000
INSERT INTO @t (st_no, year, month, sal) SELECT 1,2008,3,1000
INSERT INTO @t (st_no, year, month, sal) SELECT 1,2008,4,1010
INSERT INTO @t (st_no, year, month, sal) SELECT 1,2008,5,1010
INSERT INTO @t (st_no, year, month, sal) SELECT 1,2008,6,1010
INSERT INTO @t (st_no, year, month, sal) SELECT 1,2008,7,1010
INSERT INTO @t (st_no, year, month, sal) SELECT 1,2008,8,1020
;WITH cte AS (
SELECT *,
ROW_NUMBER() OVER(PARTITION BY sal ORDER BY year, month, sal) AS seq
FROM @t
)
SELECT year, month, sal, seq
FROM cte
WHERE seq = 1
/*
year month sal seq
----------- ----------- --------------------- --------------------
2008 1 1000.00 1
2008 4 1010.00 1
2008 8 1020.00 1
*/
.