【SQL】1327. 列出指定时间段内所有的下单产品

前述

知识点:sql中用JOIN USING 简化JOIN ON

题目描述

leetcode 题目:1327. 列出指定时间段内所有的下单产品



Code

写法一

先过滤,再连表

sql 复制代码
-- 写法一:先过滤再连表
select B.product_name, A.summ as unit
from(
    select product_id,
        sum(unit) as summ
    from Orders
    where order_date between '2020-02-01' and '2020-02-29'
    group by product_id
    having summ >= 100
) A
left join Products B
on A.product_id = B.product_id;

写法二

先连表,再过滤

sql 复制代码
-- 写法二:先连表再过滤
select product_name, sum(unit) as unit
from Products P
left join Orders O
using(product_id)
-- where order_date between '2020-02-01' and '2020-02-29'
-- where order_date >= '2020-02-01' and order_date <='2020-02-29'
-- where year(order_date) = 2020 and month(order_date) = 02
where order_date like '2020-02%'
group by O.product_id
having sum(unit) >= 100;

不同的过滤条件写法,都行。

相关推荐
身如柳絮随风扬14 小时前
Redis如何实现高效插入大量数据
数据库·redis·缓存
Dream of maid14 小时前
Mysql(3)运算符
数据库·mysql·adb
XiYang-DING14 小时前
【LeetCode】Hash | 136.只出现一次的数字
算法·leetcode·哈希算法
XDHCOM14 小时前
ORA-41722权限不足引发数据库变更通知故障,Oracle报错修复与远程处理方案引热议
数据库·oracle
修己xj14 小时前
人大金仓 KingbaseES V8 数据库 Docker 部署指南
数据库
Yushan Bai14 小时前
windows环境oracle 11.2.0.1版本数据库启动报错ORA-01589问题的处理
数据库·oracle
予早15 小时前
Redis 设置库的数量
数据库·redis·缓存
奔跑吧树袋熊15 小时前
Oracle 9i 与 19c 跨版本字符集乱码(US7ASCII ↔ AL32UTF8)DBLink 解决方案
数据库·oracle
byzh_rc15 小时前
[AI编程从入门到入土] 配置文件
java·数据库·ai编程
oradh15 小时前
Oracle数据库模式、对象的入门概述
数据库·oracle·oracle数据库基础