gpt4 book ai didi

sql-server - 从sql查询中的所有可用列中仅删除一列值的重复值

转载 作者:行者123 更新时间:2023-12-02 22:19:49 24 4
gpt4 key购买 nike

我有一个包含三列的sql查询。我想删除beam_current列中的任何重复值退出。如何做到这一点。我在sql-server2012中工作

我使用了 Distinct,但我也得到了 beam_current 的重复值。我的 sql 查询是-

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'

编辑-1我的输出是-

enter image description here

在第一列中,29.98 重复三次。我只想要与 29.98 对应的任何一行。如何做到这一点?

最佳答案

distinct 关键字适用于整行(所有列),因此:

select DISTINCT (beam_current), logtime, beam_energy 

等同于:

select DISTINCT beam_current, logtime, beam_energy 

等同于:

select DISTINCT ((beam_current)), (logtime), (((((beam_energy)))))

您可以使用 row_number() 仅选择每个 beam_energy 值的最新行:

select  *
from (
select row_number() over (
partition by beam_current
order by logtime desc) as rn
, *
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'
) numbered_rows
where rn = 1 -- Latest row per beam_current

关于sql-server - 从sql查询中的所有可用列中仅删除一列值的重复值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28694871/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com