性格いい人が優勝

以下のようなテーブルがある場合、

テーブル名:果物
果物名 購入日 購入金額
リンゴ 0101 100
リンゴ 0102 101
リンゴ 0103 101
バナナ 0101 50
バナナ 0102 60
バナナ 0103 63
レモン 0101 300
レモン 0102 300
レモン 0103 301

1月1日と1月2日に購入した果物で、
購入金額に差異があるレコードだけを抽出したいのですが、
よいSQLがありますでしょうか?
上記テーブルでは、リンゴとバナナの4レコードが取れる想定です。
実際は、もっとたくさんの果物のレコードがある想定です。

よろしくお願いします。

質問者からの補足コメント

  • 実際は、もっと果物ごとにたくさんの購入日があり、特定の購入日と購入日を条件として(質問の例にあげたのは、1月1日と1月2日)、購入金額に差異がある場合、レコードを取得したいということです。

    No.1の回答に寄せられた補足コメントです。 補足日時:2018/09/12 23:53

A 回答 (5件)

前提を知らないので確定ではありませんが、


集約した購入金額の偏差が 0 でなければ、
購入金額に差異があると見做せるかと思います。

select * from 果物
where 購入日 in ('0101','0102')
and 果物名 in (
_ select 果物名 from 果物
_ where 購入日 in ('0101','0102')
_ group by 果物名
_ having STDDEV_POP(購入金額) > 0
)
    • good
    • 0

果物名は、果物名のマスタテーブルを作ってそのidで記録するべき。


今のままではgroupも使いにくい。
    • good
    • 0

じゃぁ、一日の中では金額変更はあるの?


1日のレコード数は?
片側にしか、レコードが無い場合の扱いは?
    • good
    • 0


1月1日と2日限定の話?
ならば、1月3日の情報は不要でしょ?

なぜ例示したのか・・・
    • good
    • 0

リンゴとバナナの四レコード?


その判断基準は何?差異と言う場合に、基準があるのだけど、バナナは何が基準なの?

(差異)の基準が曖昧
同一品目で二レコード以上あれば基準なら、バナナは全部が差異になり、差異は五レコードになるはず

そういう状態ではクエリー組めません
この回答への補足あり
    • good
    • 0

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

関連するカテゴリからQ&Aを探す