表:製品
+ --------- + ------------------ +
|カラム名|タイプ|
+ ------------- + --------- + -----
| PRODUCT_ID | int型|
| PRODUCT_NAME | VARCHAR |
| PRODUCT_CATEGORY | VARCHAR |
+ ------------------ + --------- +
product_idのテーブルには主キーです。
このテーブルには、同社の製品のためのデータが含まれています。
表:受注
+ --------- + --------------- +
|カラム名|タイプ|
+ --------------- + + ---------
| PRODUCT_ID | int型|
| ORDER_DATE | DATE |
|ユニット| int型|
+ --------------- + -------- - +
テーブル主キーは、重複行が含まれていてもよいです。
製品は、PRODUCT_IDが外部キーである形成します。
単位は、日付ORDER_DATE中に製品注文の数です。
ない100未満の単一の名前や製品の数の下で2020年2月に番号を得るために必要なSQL文を、書きます。
シーケンスはありません結果シートを返します。
次の形式でクエリ結果:
製品表:
+ ------------- + ----------------------- + -------- ---------- +
| PRODUCT_ID | PRODUCT_NAME | PRODUCT_CATEGORY |
+ ------------- + ----------------------- + ----------- ------- +
| 1 | Leetcodeソリューション| ブック|
| 2 | Stringologyの宝石| ブック|
| 3 | HP | ノートパソコン|
| 4 | レノボ| ノートパソコン|
| 5 | Leetcodeキット| Tシャツ|
+ ------------- + ----------------------- + ----------- ------- +
注文表:
+ -------------- + -------------- + ---------- +
| PRODUCT_ID | ORDER_DATE | ユニット|
+ -------------- + -------------- + ---------- +
| 1 | 2020年2月5日| 60 |
| 1 | 2020年2月10日| 70 |
| 2 | 2020年1月18日| 30 |
| 2 | 2020年2月11日| 80 |
| 3 | 2020年2月17日| 2 |
| 3 | 2020年2月24日| 3 |
| 4 | 2020年3月1日| 20 |
| 4 | 2020年3月4日| 30 |
| 4 | 2020年3月4日| 60 |
| 5 | 2020年2月25日| 50 |
| 5 | 2020年2月27日| 50 |
| 5 | 2020年3月1日| 50 |
+ -------------- + -------------- + ---------- +
表結果:
+ -------------------- + --------- +
| PRODUCT_NAME | ユニット|
+ -------------------- + --------- +
| Leetcodeソリューション| 130 |
| Leetcodeキット| 100 |
+ -------------------- + --------- +
2020年2月には、単一の製品の数の和PRODUCT_ID = 1は、(60 + 70)= 130です。
2020年2月には、単一の製品の数の合計が80に= 2 PRODUCT_ID。
2020年2月には、単一の製品の数の和がPRODUCT_ID = 3(2 + 3)= 5です。
2020年2月= 4となし、単一の製品をPRODUCT_ID。
2020年2月には、単一の製品の数の和PRODUCT_ID = 5は、(50 + 50)= 100です。
出典:滞在ボタン(LeetCode)
//leetcode-cn.com/problems/list-the-products-ordered-in-a-period:リンク:httpsの
すべてのネットワークからの控除が著作権を保有。商業転載は、ソースを明記してください許可公式、非商用の転載をご連絡ください。
モデレーション:以下100以上の単一の名前や製品の数の下で2020年2月に番号を得るために必要なSQL文を書きます。
思考:よると、IDと日付のグループ化、集計および100の比較。日付は月に変換する必要があります。
問題解決:
select p.product_name,sum(o.unit) as unit
from
products p
left join
orders o
on
p.product_id=o.product_id
where
order_date between '2020-02-01' and '2020-02-29'
group by
p.product_name
having
sum(o.unit)>=100
order by
sum(o.unit)
知識ポイント: