[英]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.