代码编织梦想

力扣高频SQL 50题(基础版)第八题

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 期间进行的交易的信息。

有一些顾客可能光顾了购物中心但没有进行交易。请你编写一个解决方案,来查找这些顾客的 ID ,以及他们只光顾不交易的次数。

返回以 任何顺序 排序的结果表。

思路分析

在这里插入图片描述

本题利用子查询的方法结合逻辑查询not解题,首先在表Transactions中查出光顾且消费的顾客ID,然后在表Visits中过滤掉消费的顾客ID,即可得到进店却为进行交易的顾客,最后通过count函数统计次数。

实现过程

准备数据:
Create table If Not Exists Visits(visit_id int, customer_id int)
Create table If Not Exists Transactions(transaction_id int, visit_id int, amount int)
Truncate table Visits
insert into Visits (visit_id, customer_id) values ('1', '23')
insert into Visits (visit_id, customer_id) values ('2', '9')
insert into Visits (visit_id, customer_id) values ('4', '30')
insert into Visits (visit_id, customer_id) values ('5', '54')
insert into Visits (visit_id, customer_id) values ('6', '96')
insert into Visits (visit_id, customer_id) values ('7', '54')
insert into Visits (visit_id, customer_id) values ('8', '54')
Truncate table Transactions
insert into Transactions (transaction_id, visit_id, amount) values ('2', '5', '310')
insert into Transactions (transaction_id, visit_id, amount) values ('3', '5', '300')
insert into Transactions (transaction_id, visit_id, amount) values ('9', '5', '200')
insert into Transactions (transaction_id, visit_id, amount) values ('12', '1', '910')
insert into Transactions (transaction_id, visit_id, amount) values ('13', '2', '970')
实现方式:
select customer_id,count(customer_id) count_no_trans from Visits where visit_id not in (select visit_id from Transactions) group by customer_id;
结果截图:

在这里插入图片描述

总结:
#逻辑查询not
#查询不是河南的学生
select * from stu where address not in ('河南')     
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/m0_70882914/article/details/140638790

leetcode的高频sql50题基础版(答案和要点)_leetcode 答案-爱代码爱编程

第一题: 1.可回收且低脂的产品 select product_id from Products where low_fats = "Y" and recyclable = "Y" 2.寻找用户推荐人 考察SQL里面空值也是不等于2的。 即:数值不等于2或者空值。也可以用<=>表示,即not referee_id <=>

力扣高频sql50题(基础版)——第八天-爱代码爱编程

力扣高频SQL50题(基础版)——第八天 1 游戏玩法分析 IV 1.1 题目内容 1.1.1 基本题目信息 1.1.2 示例输入输出 1.2 示例sql语句 SELECT ROUND(count(a2.

【leetcode高频sql50题-爱代码爱编程

文章目录 【LeetCode高频SQL50题-基础版】打卡第四天:第21~25题⛅前言即时食物配送II🔒题目🔑题解 游戏玩法分析IV🔒题目🔑题解 每位教师所教授的科目种类的数量🔒题目🔑题解

力扣高频 sql 50 题(基础版)_sql全连接力扣-爱代码爱编程

1.可回收且低脂的产品 答案:select product_id from Products where low_fats='Y' and recyclable='Y' 较为简单入门。 2.寻找用户推荐人 答案:select name from customer where referee_id <> 2 or refe

力扣高频sql50题(基础版)重点部分-爱代码爱编程

力扣高频SQL50题(基础版)重点部分 文章目录 力扣高频SQL50题(基础版)重点部分每月交易 I游戏玩法分析 IV销售分析 III连续出现的数字指定日期的产品价格按分类统计薪水换座位电影评分餐馆营业额

力扣高频sql 50题(基础版)第十八题-爱代码爱编程

文章目录 力扣高频SQL 50题(基础版)第十八题1633. 各赛事的用户注册率题目说明思路分析实现过程准备数据实现方式结果截图 力扣高频SQL 50题(基础版)第十八题 1

力扣高频sql 50题(基础版)第二十五题-爱代码爱编程

文章目录 力扣高频SQL 50题(基础版)第二十五题619.只出现一次的最大数字题目说明实现过程准备数据实现方式结果截图 力扣高频SQL 50题(基础版)第二十五题 619.

力扣高频sql 50题(基础版)第二十二题-爱代码爱编程

文章目录 力扣高频SQL 50题(基础版)第二十二题1084 销售分析题目说明思路分析实现过程准备数据实现方式结果截图 力扣高频SQL 50题(基础版)第二十二题 1084