10

私はこのようなテーブルを持っています:

Number   Price    Type       Date         Time
------   -----    ----    ----------    ---------
23456    0,665     SV     2014/02/02     08:00:02
23457    1,3       EC     2014/02/02     07:50:45
23460    0,668     SV     2014/02/02     07:36:34
23461    0,668     SV     2014/02/02     07:37:34
23462    0,668     SV     2014/02/02     07:38:34
23463    0,668     SV     2014/02/02     07:39:34

レコードごとに、前/次の価格が必要です。この場合、クエリは単純です。

Select Lag(price) over (order by date desc, time desc),
Lead(price) over (order by date desc, time desc)
from ITEMS

しかし、次の価格<>記録価格の結果が必要です

私のクエリは

    Select Lag(price) over (order by date desc, time desc) Nxt_Price,
    Lead(price) over (order by date desc, time desc) Prv_Price
    from ITEMS
 Where Nxt_Price <> price

しかし、その変数の使用を拒否しました

4

2 に答える 2

10

以下のクエリを試してください。

SELECT Nxt_Price, Prv_Price 
FROM
    (Select price, Lag(price) over (order by date desc, time desc) Nxt_Price,
    Lead(price) over (order by date desc, time desc) Prv_Price
    from ITEMS) AS InnerQuery
 Where Nxt_Price <> price

それはあなたを助けるかもしれません。

于 2014-11-11T12:34:22.223 に答える
3

共通テーブル式を使用してください。

with myItems as (
     Select Lag(price) over (order by date desc, time desc) Nxt_Price,
    Lead(price) over (order by date desc, time desc) Prv_Price
    from ITEMS
)
select *
from myItems
where Nxt_Price <> Prv_Price
于 2014-11-11T15:20:33.730 に答える