You can do the following - which of the many rows for a given col3 value will be returned is determined by the ordering you specify in the ROW_NUMBER().SELECT
col1, col2, col3,col4
FROM
(
SELECT
*,ROW_NUMBER() OVER (PARTITION BY col3 ORDER BY col1) AS RN
FROM
YourTable
)s
WHERE RN = 1;