SQL查询,根据另一列的最高值删除重复项
我正在从SCOM SQL server提取警报 我对警报复制有一些问题,因为每次警报状态发生更改(例如,从“新建”更改为“确认”),都会在数据库上创建一个具有相同警报id的新条目 因此,我尝试根据最高警报状态(0表示新警报,100表示已确认警报,255表示已关闭警报)消除这些警报id的重复数据 例: 对于第1行和第2行(相同的警报\u id),我只想选择“ResolutionState”值较高(255)的行 我所尝试的: 按语句分组(每次我得到不同的计数…SQL查询,根据另一列的最高值删除重复项,sql,sql-server,duplicates,Sql,Sql Server,Duplicates,我正在从SCOM SQL server提取警报 我对警报复制有一些问题,因为每次警报状态发生更改(例如,从“新建”更改为“确认”),都会在数据库上创建一个具有相同警报id的新条目 因此,我尝试根据最高警报状态(0表示新警报,100表示已确认警报,255表示已关闭警报)消除这些警报id的重复数据 例: 对于第1行和第2行(相同的警报\u id),我只想选择“ResolutionState”值较高(255)的行 我所尝试的: 按语句分组(每次我得到不同的计数… 选择唯一(完全不工作) 选择在哪里 她
选择唯一(完全不工作)
选择在哪里 她的sql查询是:
SELECT
Alert.vAlert.AlertGuid AS 'alert_id',
Alert.vAlertResolutionState.StateSetDateTime AS 'alert_timeraised',
ResolutionState
FROM
Alert.vAlertDetail WITH (NOLOCK)
INNER JOIN Alert.vAlert WITH (NOLOCK) ON Alert.vAlertDetail.AlertGuid = Alert.vAlert.AlertGuid
INNER JOIN Alert.vAlertResolutionState ON Alert.vAlert.AlertGuid = Alert.vAlertResolutionState.AlertGuid
GROUP BY
Alert.vAlert.AlertGuid,
Alert.vAlertResolutionState.StateSetDateTime,
Alert.vAlertResolutionState.ResolutionState
UNION
SELECT
Alert.vAlert.AlertGuid,
CONVERT(VARCHAR(50), Alert.vAlertResolutionState.StateSetDateTime, 20),
ResolutionState
FROM
Alert.vAlertDetail WITH (NOLOCK)
INNER JOIN Alert.vAlert WITH (NOLOCK) ON Alert.vAlertDetail.AlertGuid = Alert.vAlert.AlertGuid
INNER JOIN Alert.vAlertResolutionState ON Alert.vAlert.AlertGuid = Alert.vAlertResolutionState.AlertGuid
GROUP BY
Alert.vAlert.AlertGuid,
Alert.vAlertResolutionState.StateSetDateTime,
Alert.vAlertResolutionState.ResolutionState
ORDER BY alert_id asc
如果您对此有任何建议,非常感谢。请不要回答“重复”,我暂时没有解决方案。,,我尝试了分组方式,子查询,其中。。。我不是SQL高手:(请不要回答“重复”,我暂时没有解决方案.,,我尝试过分组,子查询,其中…我不是SQL高手:(
SELECT
Alert.vAlert.AlertGuid AS 'alert_id',
Alert.vAlertResolutionState.StateSetDateTime AS 'alert_timeraised',
ResolutionState
FROM
Alert.vAlertDetail WITH (NOLOCK)
INNER JOIN Alert.vAlert WITH (NOLOCK) ON Alert.vAlertDetail.AlertGuid = Alert.vAlert.AlertGuid
INNER JOIN Alert.vAlertResolutionState ON Alert.vAlert.AlertGuid = Alert.vAlertResolutionState.AlertGuid
GROUP BY
Alert.vAlert.AlertGuid,
Alert.vAlertResolutionState.StateSetDateTime,
Alert.vAlertResolutionState.ResolutionState
UNION
SELECT
Alert.vAlert.AlertGuid,
CONVERT(VARCHAR(50), Alert.vAlertResolutionState.StateSetDateTime, 20),
ResolutionState
FROM
Alert.vAlertDetail WITH (NOLOCK)
INNER JOIN Alert.vAlert WITH (NOLOCK) ON Alert.vAlertDetail.AlertGuid = Alert.vAlert.AlertGuid
INNER JOIN Alert.vAlertResolutionState ON Alert.vAlert.AlertGuid = Alert.vAlertResolutionState.AlertGuid
GROUP BY
Alert.vAlert.AlertGuid,
Alert.vAlertResolutionState.StateSetDateTime,
Alert.vAlertResolutionState.ResolutionState
ORDER BY alert_id asc