[英]Compare two values from consecutive rows
我有來自儀表的以下數據
博士ID | 百分比 | 視頻 | IAPD | 設備ID | 是聚合 | 標識符 | 時間戳 | 月TS | 年TS |
---|---|---|---|---|---|---|---|---|---|
1366 | 0 | 5 | 0 | 49 | 0 | NULL | 2001-01-01 00:00:00.0000000 | 1 | 2001年 |
34661090 | 0 | 5 | 0 | 49 | 0 | 1366 | 2001-01-01 00:00:00.0000000 | 1 | 2001年 |
34661091 | 0 | 5 | 0 | 49 | 0 | 1366 | 2001-02-01 00:00:00.0000000 | 2 | 2001年 |
34661092 | 0 | 5 | 0 | 49 | 0 | 1366 | 2001-03-01 00:00:00.0000000 | 3 | 2001年 |
34661093 | 0 | 5 | 0 | 49 | 0 | 1366 | 2001-04-01 00:00:00.0000000 | 4 | 2001年 |
34661094 | 0 | 5 | 0 | 49 | 0 | 1366 | 2001-05-01 00:00:00.0000000 | 5 | 2001年 |
34661095 | 1 | 5 | 0 | 49 | 0 | 1366 | 2001-06-01 00:00:00.0000000 | 6 | 2001年 |
34661096 | 0 | 5 | 0 | 49 | 0 | 1366 | 2001-07-01 00:00:00.0000000 | 7 | 2001年 |
34661097 | 0 | 5 | 0 | 49 | 0 | 1366 | 2001-08-01 00:00:00.0000000 | 8 | 2001年 |
34661098 | 0 | 5 | 0 | 49 | 0 | 1366 | 2001-09-01 00:00:00.0000000 | 9 | 2001年 |
34661099 | 0 | 5 | 0 | 49 | 0 | 1366 | 2001-10-01 00:00:00.0000000 | 10 | 2001年 |
34661100 | 0 | 5 | 0 | 49 | 0 | 1366 | 2001-11-01 00:00:00.0000000 | 11 | 2001年 |
34661101 | 0 | 5 | 0 | 49 | 0 | 1366 | 2001-12-01 00:00:00.0000000 | 12 | 2001年 |
這里第一行是父設備,其子設備下方的行。 我想確保所有子設備(其 PrID 等於 DrID)應具有與父設備相同的“attPercentage”值。
所以這里 DrID 34661095 將成為問題,因為它的“attPecentage”值為 1 與其“attPecentage”值為 0 的父設備(第一行)不同
這只是我擁有的龐大數據集中的一個小樣本。
此處預期的 output 將是所有子行,其值與父行不同。
例如,在這種情況下,預期結果應該是第 7 行,DrID 為 34661095
任何有關如何做到這一點的指導將不勝感激。
您可以通過子查詢獲得。 如果 DRID 字段是唯一的,那么下面的查詢將滿足您的目的。
select DrID,
attPercentage,
VID,
IAPD,
DeviceID,
IsAggregate,
PrID,
Timestamp,
monthTS,
YearTS
from tableName child
where PrID is not null
and attPercentage <> (
select attPercentage
from tableName parent
where parent.DrID = child.PrID)
一種方法是join
:
select t.*, t.attPercentage as parent_attPercentage
from t left join
t tp
on t.prid = tp.drid;
另一種方法——假設子行中的所有值都是0
或NULL
是使用 window 函數:
select t.*,
max(t.attPercentage) over (partition by coalesce(t.prid, t.drid)) as parent_attPercentage
from t;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.