みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

SQLで1レコード前のデータと比較し計算する方法

下記の様なデータベースとデータがあった場合に算出結果Xの値を求めたいのですが、
SQLで実装するにはどうすれば良いでしょうか?

商品名 連番 稼働時間   算出結果X
商品A 1  60分  → 60分
商品A 2  90分  → 30分
商品A 3  300分 → 210分
商品B 1  10分  → 10分
商品C 1  20分  → 20分

(計算式)
1件目:前のレコードの商品名が違う場合はそのままで、60分とする。
2件目:前のレコードの商品名が同じ場合は90分-60分で、30分
3件目:前のレコードの商品名が同じ場合は300分-90分で、210分とする。
4件目:前のレコードの商品名が違う場合はそのままで、10分とする。
5件目:前のレコードの商品名が違う場合はそのままで、20分とする。

今まではEXCELでデータを管理しEXCELの関数で算出結果Xの値を求めていましたが、オラクルのDBにデータを格納して計算する方法を検討しています。
宜しくお願いします。

投稿日時 - 2019-04-01 15:04:21

QNo.9602662

困ってます

質問者が選んだベストアンサー

SELECT 商品名, 連番, 稼働時間
, 稼働時間 - LAG(稼働時間, 1, 0) OVER(PARTITION BY 商品名 ORDER BY 連番) AS 算出結果X
FROM テーブル

みたいな感じ。

投稿日時 - 2019-04-01 17:18:58

お礼

出来ました!
ありがとうございます。

投稿日時 - 2019-04-02 13:31:25

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問