アプリ版:「スタンプのみでお礼する」機能のリリースについて

いつもお世話になっております。
表題の件について教えてください。

使用SQL:Oracle


例えば下記のようなテーブルがあるとします。

【運賃テーブル】
日付   出発  到着 運賃
10月1日 東京 青森 8000円
10月1日 東京 大阪 5000円
10月1日 東京 福岡 8000円
10月1日 青森 大阪 6000円
10月1日 青森 福岡 9500円
10月1日 大阪 福岡 5000円
10月1日 大阪 青森 9800円
10月2日 東京 青森 8000円
10月2日 東京 大阪 5000円
10月2日 東京 福岡 8500円
10月2日 青森 大阪 6000円
10月2日 青森 福岡 9500円
10月2日 大阪 福岡 5000円
10月2日 大阪 青森 9000円


仮に運賃を日付で比較した場合、下記のようになります。
【運賃比較】
      10月1日 10月2日
東京 青森 8000円 8000円
東京 大阪 5000円 5000円
東京 福岡 8000円 8500円
青森 大阪 6000円 6000円
青森 福岡 9500円 9500円
大阪 福岡 5000円 5000円
大阪 青森 9800円 9000円


この場合、値上がりがあったら、下記の様に
値上がり(値下がり)があった路線について一目で分かる
SQLコードはどの様にかけば良いのか教えてください。

【運賃変更】
出発 到着 10月1日 10月2日
東京 福岡 8000円 8500円
大阪 青森 9800円 9000円


もし上記が可能であるならば、【運賃比較】テーブルの様に
データを選択剃る方法についてもご教授ください。

よろしくお願いいたします。

A 回答 (1件)

あなたの想いとは違うかもしれないけど



-- 運賃比較
SELECT 日付, 出発, 到着, 運賃,
LAG(運賃) OVER (PARTITION BY 出発, 到着 ORDER BY 日付) AS 前日
FROM 運賃テーブル;

-- 運賃変更
SELECT *
FROM (
SELECT 日付, 出発, 到着, 運賃,
LAG(運賃) OVER (PARTITION BY 出発, 到着 ORDER BY 日付) AS 前日
FROM 運賃テーブル
) WHERE 運賃 <> 前日;
    • good
    • 0
この回答へのお礼

dda167さん

さっそくありがとうございました。

本日【運賃変更】の方を試しましたところ
考えていた通りのデータがExportされました。

SQLのコードだけでもある程度の事はできるのだと分かったことも
非常に大きな収穫となりました。

また質問させていただくこともあるかと思います。
その際はまたぜひお付き合いください。

よろしくお願いいたします。

お礼日時:2012/10/30 22:53

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!