Search code examples
sql-serverdistinct-values

remove duplicate values of only one column value from all the available columns in sql query


I have a sql query with three columns .I want to remove any duplicate value exits in beam_current column.How to do so.I work in sql-server2012

I used Distinct but then also I'm getting duplicate values of beam_current. My sql Query is-

select DISTINCT (beam_current), logtime, beam_energy 
from INDUS2_BDS.dbo.DCCT 
where logtime between '2014-08-09 01:13:03' and '2014-08-09 02:16:53'
      and (beam_current like '%9.96' 
           or beam_current like '%9.97' 
           ... etc ...) 
      and beam_energy between '550' and '552'

EDIT-1 My output is-

enter image description here

In first column 29.98 is repeating thrice.I only want any one of the row corresponding to 29.98.How to do that??


Solution

  • This will return 1 row for each value of beam_current:

    ;WITH CTE AS
    (
    SELECT
      row_number() over (partition by beam_current order by (select 1)) rn,
      beam_current, logtime, beam_energy 
    FROM INDUS2_BDS.dbo.DCCT 
    WHERE 
      logtime between '2014-08-09 01:13:03' and '2014-08-09 02:16:53'
      and (beam_current like '%9.96' or beam_current like '%9.97' 
           or beam_current like '%9.98' or  beam_current like '%9.99'
           or beam_current like '%0' or beam_current like '%_0.01' 
           or beam_current like '%_0.02' or beam_current like '%_0.03' 
           or beam_current like '%_0.04' or beam_current like '%_0.05' 
           or beam_current like '%_0.06') 
           and beam_energy between 550 and 552
    )
    SELECT beam_current, logtime, beam_energy 
    FROM CTE
    WHERE rn = 1