22,209
社区成员
发帖
与我相关
我的任务
分享
--用row_number()排名,相同只取第一条
select * from (
select *,row_number() over (partition by AlarmObjectID,NMAlarmID order by ObjectGUID) AS NUM_ID
from [alarmdb].[dbo].[PowerEnvAlarm]
where Cancel_Time is null) a
where NUM_ID=1
select max(ObjectGUID),AlarmObjectID from [alarmdb].[dbo].[PowerEnvAlarm]
where Cancel_Time is null and ObjectGUID=ltrim(AlarmObjectID)
GROUP BY AlarmObjectID,NMAlarmID
select * from PowerEnvAlarm a
where Cancel_Time is null
and ObjectGUID=(select max(ObjectGUID) from powerenvalarm
where AlarmObjectID=a.AlarmObjectID and NMAlarmID=a.NMAlarmID)
select ObjectGUID,AlarmObjectID
from [alarmdb].[dbo].[PowerEnvAlarm]
where Cancel_Time is null
GROUP BY AlarmObjectID,NMAlarmID
having count(*)>1
select * from PowerEnvAlarm a
where Cancel_Time is null and not exists(select 1 from powerenvalarm where AlarmObjectID=a.AlarmObjectID and NMAlarmID=a.NMAlarmID and ObjectGUID>a.ObjectGUID)