[英]Select Query to Get Unique Cells in Two Columns
我有一个SQL Server数据库,用于记录天气设备传感器数据。
该表如下所示:
Id DeviceId SensorId Value 1 1 1 42 2 1 1 3 3 1 2 30 4 2 2 0 5 2 1 1 6 3 1 26 7 3 1 23 8 3 2 1
作为回报,查询应返回以下内容:
Id DeviceId SensorId Value 2 1 1 3 3 1 2 30 4 2 2 0 5 2 1 1 7 3 1 23 8 3 2 1
对于每个设备,传感器应该是唯一的。 即,DeviceId和SensorId列中的值应该是唯一的(逐行)。
抱歉,如果我不够清楚。
如果您不希望对Value
进行求和,则只希望对每个“ DeviceId + SensorId”-组使用“任意”行:
WITH CTE AS
(
SELECT Id, DeviceId, SensorId, Value,
RN = ROW_NUMBER() OVER (PARTITION BY DeviceId, SensorId ORDER BY ID DESC)
FROM dbo.TableName
)
SELECT Id, DeviceId, SensorId, Value
FROM CTE
WHERE RN = 1
ORDER BY ID
这将返回每个组具有最高ID的行。 如果需要不同的结果,则需要更改ORDER BY ID DESC
。 演示: http : //sqlfiddle.com/#!6/8e31b/2/0 (您的结果)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.