leetcode1083。販売分析II(SQL)

表:製品

+ --------- + -------------- +
|カラム名|タイプ|
+ -------------- + - + -------
| PRODUCT_ID | int型|
| PRODUCT_NAME | VARCHAR |
| UNIT_PRICE | int型|
+ -------------- + --------- +
PRODUCT_IDこれは、テーブルの主キーのある
テーブル:販売

+ ------------- + --------- +
|カラム名|タイプ|
+ ------------- + ---- + -----
| seller_id | int型|
|のproduct_id | int型|
| buyer_id | int型|
| SALE_DATE | DATE |
|数量| int型|
|価格|整数|
+ ------ + ------ --------- +
このテーブルは主キーを持っていない、それは。重複行を持つことができます
。PRODUCT_IDは、Productテーブルの外部キーである
SQLクエリを記述し、S8の携帯電話を購入したが、iPhoneのバイヤーを買いませんでした。S8とiPhoneは、製品表の製品であることに注意してください。

クエリ結果のフォーマットを示し、言いました:

Productテーブル:
+ ------------ + ------------ + ------------ +
| PRODUCT_ID | PRODUCT_NAME | UNIT_PRICE |
+ ------------ + ------------ + ------------ +
| 1 | S8 | 1000年|
| 2 | G4 | 800 |
| 3 | iPhone | 1400 |
+ ------------ + ------------ + ------------ +

売上表:
+ ----------- + ------------ + ---------- + ---------- - + ---------- + ------- +
| seller_id | PRODUCT_ID | buyer_id | SALE_DATE | 数量| 価格|
+ ----------- + ------------ + ---------- + ------------ + ---------- + ------- +
| 1 | 1 | 1 | 2019年1月21日| 2 | 2000 |
| 1 | 2 | 2 | 2019年2月17日| 1 | 800 |
| 2 | 1 | 3 | 2019年6月2日| 1 | 800 |
| 3 | 3 | 3 | 2019年5月13日| 2 | 2800 |
+ ----------- + ------------ + ---------- + ------------ + ---------- + ------- +

表結果:
+ ------------- +
| buyer_id |
+ ------------- +
| 1 |
+ ---------- + ---
IDのバイヤーは1つのS8を購入したが、iPhoneを購入していなかった、とid 3は、同時にバイヤーが2台の電話機を購入しました。

アイデアは:最初のリスト内の各個人を決定するために、電話番号のリストに基づいて、買っ2本の携帯電話を見つける、2つの電話番号を単離し、第二のリストを愛していませんでした。

select distinct buyer_id
from Sales
where buyer_id in (select buyer_id from Sales where product_id=(select product_id from Product where product_name='S8')) 
and buyer_id not in (select buyer_id from Sales where product_id=(select product_id from Product where product_name='iPhone'));

 

公開された611元の記事 ウォンの賞賛10000 + ビュー143万+

おすすめ

転載: blog.csdn.net/hebtu666/article/details/104437593