力扣-进店却未进行过交易的顾客
大家好,我是空空star,本篇带大家了解一道简单的力扣sql练习题。
文章目录
- 前言
- 一、题目:1581. 进店却未进行过交易的顾客
- 二、解题
- 1.正确示范①
- 提交SQL
- 运行结果
- 2.正确示范②
- 提交SQL
- 运行结果
- 3.正确示范③
- 提交SQL
- 运行结果
- 4.正确示范④
- 提交SQL
- 运行结果
- 5.正确示范⑤
- 提交SQL
- 运行结果
- 总结
前言
一、题目:1581. 进店却未进行过交易的顾客
表:Visits
+-------------+---------+
| Column Name | Type |
+-------------+---------+
| visit_id | int |
| customer_id | int |
+-------------+---------+
visit_id 是该表的主键。
该表包含有关光临过购物中心的顾客的信息。
表:Transactions
+----------------+---------+
| Column Name | Type |
+----------------+---------+
| transaction_id | int |
| visit_id | int |
| amount | int |
+----------------+---------+
transaction_id 是此表的主键。
此表包含 visit_id 期间进行的交易的信息。
有一些顾客可能光顾了购物中心但没有进行交易。请你编写一个 SQL 查询,来查找这些顾客的 ID ,以及他们只光顾不交易的次数。
返回以 任何顺序 排序的结果表。
查询结果格式如下例所示。
输入:
Visits
+----------+-------------+
| visit_id | customer_id |
+----------+-------------+
| 1 | 23 |
| 2 | 9 |
| 4 | 30 |
| 5 | 54 |
| 6 | 96 |
| 7 | 54 |
| 8 | 54 |
+----------+-------------+
Transactions
+----------------+----------+--------+
| transaction_id | visit_id | amount |
+----------------+----------+--------+
| 2 | 5 | 310 |
| 3 | 5 | 300 |
| 9 | 5 | 200 |
| 12 | 1 | 910 |
| 13 | 2 | 970 |
+----------------+----------+--------+
输出:
+-------------+----------------+
| customer_id | count_no_trans |
+-------------+----------------+
| 54 | 2 |
| 30 | 1 |
| 96 | 1 |
+-------------+----------------+
解释:
ID = 23 的顾客曾经逛过一次购物中心,并在 ID = 12 的访问期间进行了一笔交易。
ID = 9 的顾客曾经逛过一次购物中心,并在 ID = 13 的访问期间进行了一笔交易。
ID = 30 的顾客曾经去过购物中心,并且没有进行任何交易。
ID = 54 的顾客三度造访了购物中心。在 2 次访问中,他们没有进行任何交易,在 1 次访问中,他们进行了 3 次交易。
ID = 96 的顾客曾经去过购物中心,并且没有进行任何交易。
如我们所见,ID 为 30 和 96 的顾客一次没有进行任何交易就去了购物中心。顾客 54 也两次访问了购物中心并且没有进行任何交易。
二、解题
1.正确示范①
提交SQL
select customer_id,count(1) count_no_trans
from Visits u1
left join Transactions u2
on u1.visit_id=u2.visit_id
where u2.visit_id is null
group by customer_id;
运行结果
2.正确示范②
提交SQL
select customer_id,count(*) count_no_trans
from Visits u1
left join Transactions u2
on u1.visit_id=u2.visit_id
where u2.visit_id is null
group by customer_id;
运行结果
3.正确示范③
提交SQL
select customer_id,count(u1.visit_id) count_no_trans
from Visits u1
left join Transactions u2
on u1.visit_id=u2.visit_id
where u2.visit_id is null
group by customer_id;
运行结果
4.正确示范④
提交SQL
select customer_id,sum(1) count_no_trans
from Visits u1
left join Transactions u2
on u1.visit_id=u2.visit_id
where u2.visit_id is null
group by customer_id;
运行结果
5.正确示范⑤
提交SQL
select customer_id,count(1) count_no_trans
from Visits
where visit_id not in(select visit_id from Transactions
)
group by customer_id;
运行结果
总结
正确示范①思路:
left join
+group by
+count(1)
正确示范②思路:
left join
+group by
+count(*)
正确示范③思路:
left join
+group by
+count(u1.visit_id)
正确示范④思路:
left join
+group by
+sum(1)
正确示范⑤思路:
not in
+group by
+count(1)
其他:
也可以用not exists
+group by
+count(1)
力扣-进店却未进行过交易的顾客相关推荐
- LeetCode MySQL 1581. 进店却未进行过交易的顾客
1. 题目 表:Visits +-------------+---------+ | Column Name | Type | +-------------+---------+ | visit_id ...
- 力扣学习记录(每日更新)
文章目录 引言 简单 力扣:1 两数之和 力扣:20 有效的括号 力扣:21 合并两个有序链表 力扣:22 括号生成 力扣:27 移除元素 力扣: 35 搜索插入位置 力扣:70 [爬楼梯](http ...
- 力扣sql入门篇(五)
力扣sql入门篇(五) 1 组合两个表 1.1 题目内容 1.1.1 基本题目信息 1.1.2 示例输入输出 1.2 示例sql语句 SELECT firstname,lastname,IFNULL( ...
- 力扣刷题-专项突破-SQL入门
选择 595.大的国家 (简单) World 表: +-------------+---------+ | Column Name | Type | +-------------+---------+ ...
- 《LeetCode力扣练习》剑指 Offer 15. 二进制中1的个数 Java
<LeetCode力扣练习>剑指 Offer 15. 二进制中1的个数 Java 一.资源 题目: 编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 ...
- leetcode c++未初始化_LeetCode 力扣官方题解 | 538. 把二叉搜索树转换为累加树
力扣 538. 把二叉搜索树转换为累加树(点击查看题目) 力扣leetcode-cn.com 题目描述 给定一个二叉搜索树(Binary Search Tree),把它转换成为累加树(Greater ...
- 力扣LeetCode-哈希表
哈希表 一.基本知识点 1. 定义 哈希表是根据关键码的值而直接进行访问的数据结构. 2. 解决问题 快速判断一个元素是否出现集合里. 3. 哈希碰撞解决方法 拉链法与线性探测法. 4. 常见的三种哈 ...
- 力扣刷题记录-回溯算法相关题目
首先介绍一下回溯算法 回溯通常在递归函数中体现,本质也是一种暴力的搜索方法,但可以解决一些用for循环暴力解决不了的问题,其应用有: 1.组合问题: 例:1 2 3 4这些数中找出组合为2的组合,有1 ...
- 力扣编程题-解法汇总
一.力扣链接: 题库 - 力扣 (LeetCode) 全球极客挚爱的技术成长平台 备注:以后每个工作日从前往后刷一道题,然后再加一道每日新题.每天两道题. 二.模版: 标题: 力扣解法汇总5-正则表达 ...
最新文章
- Codeforces 1246D/1225F Tree Factory (构造)
- Linux getcwd()的实现【转】
- 项目管理最佳实践方法_项目管理:控制项目进度最佳实践
- 上科大、腾讯提出Liquid Warping GAN,实现人体动作迁移的新高度!
- 应届生毕业第一份工资多少?
- 目标检测算法——小目标检测相关数据集(附下载链接)
- GIS实验之制作地形地貌图
- Python 获取本周、上周、下周周一、周天的日期
- 微笑哥,工作快乐感与快乐企业文化
- SMTP:mail、sendmail、mailx、postfix等邮件服务总结
- 学python千万别想当然
- 《西邮XUPT-ACM学子的文字》
- 埃尔米特曲线 Hermite Curve
- linux批量删除文件或者文件夹
- 利用eda函数对文本数据进行增强
- 跟同事杠上了,Apache Beanutils为什么被禁止使用?
- 关键词提取算法TextRank
- Delegate.Combine
- htc incredible s手机无限重启
- 黑苹果 【 I7 8700K z370 1060 和 I7 7700K z270 集显 的安装记录】
热门文章
- OFFICE图标不正常显示的解决办法(转载)
- 深度学习第J6周:ResNeXt-50实战解析
- 2017免费发布信息平台排行大全!
- Mac上iPad Pro高清桌面动态壁纸
- 区块链打造“红娘链”,婚姻上链让爱更“牢固”
- 使用SDNN (space displacement neural network)进行多字体手写识别
- 【华为机试真题Python】工厂流水线调度
- 04Java异常-3. 异常处理方式之try..catch
- WPF 绑定继承的样式提示 只能根据带有基类型 IFrameworkInputElement 的目标类型的 Style 样式
- 原生js实现对未来dom的事件绑定