Grouping Selecting unique values in a single column
SQL Server 2012 offers the 'LAG' keyword which enables a SELECT statement to display the previous row.  You could use this to compare the current row to the previous row in the WHERE clause. 

Here is an example:

USE Test;
CREATE TABLE LagTest
(
    ID INT NOT NULL CONSTRAINT PK_LagTest PRIMARY KEY CLUSTERED IDENTITY(1,1)
    , Data NVARCHAR(255) NOT NULL 
);

INSERT INTO LagTest (Data) VALUES ('test1');
INSERT INTO LagTest (Data) VALUES ('test1');
INSERT INTO LagTest (Data) VALUES ('test1');
INSERT INTO LagTest (Data) VALUES ('test2');
INSERT INTO LagTest (Data) VALUES ('test2');
INSERT INTO LagTest (Data) VALUES ('test2');
INSERT INTO LagTest (Data) VALUES ('test3');
INSERT INTO LagTest (Data) VALUES ('test3');
INSERT INTO LagTest (Data) VALUES ('test3');

SELECT * 
FROM (
SELECT ID, Data, LAG(Data,1,0) OVER (ORDER BY ID) AS PreviousData
FROM LagTest 
) AS L
WHERE L.PreviousData &lt;&gt; L.Data;


The returns: