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

恐らくそれほど複雑なSQLではないと思いますが、中々SQLが作成できず困っています。
回答いただければ嬉しいです。

以下のテーブルがあったと仮定します。
テーブル名:
 売上げ明細
カラム:
 ・商品ID … 売上げ明細なので一意ではありません
 ・単価 … 同じ商品IDでも、レコードによって単価は異なります
 ・数量 … 1~5の整数のみとします

実際のデータは以下の通りです。

商品ID,単価,数量
1001,50,2
1001,60,5
1002,90,3
1003,60,5
1003,80,4
1003,90,1
1004,60,3

上記データを以下の通り抽出するには、どのようなSQLを組めばいいでしょうか?
1.まず各商品IDの中から単価が最大のレコードだけを取り出す

商品ID,単価,数量
1001,60,5
1002,90,3
1003,90,1
1004,60,3

2.次に数量でgroup by して、件数をカウントする

数量,件数
1,1
3,2
5,1


1つのSQL文で2の結果が得られれば、途中の抽出条件は特に問いません。
ちなみにMySQL5を使っています。

よろしくお願いします。

A 回答 (1件)

SELECT


`数量`
,COUNT(`商品ID`)
FROM `売上げ明細`
WHERE (`商品ID`, `単価`) IN (SELECT `商品ID`, MAX(`単価`) FROM `売上げ明細` GROUP BY `商品ID`)
GROUP BY `数量`
    • good
    • 3
この回答へのお礼

迅速なご回答ありがとうございます。
おかげさまで期待通りのデータが得られました。
(-人-)ありがたや~

お礼日時:2012/12/02 10:32

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

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