簡體   English   中英

選擇查詢以獲取兩列中的唯一單元格

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM