当前位置:网站首页>【每日SQL打卡】DAY 27丨每次访问的交易次数【难度困难-提前放出来】
【每日SQL打卡】DAY 27丨每次访问的交易次数【难度困难-提前放出来】
2022-07-29 11:42:00 【不吃西红柿】
难度困难
SQL架构
表: Visits
+---------------+---------+
| Column Name | Type |
+---------------+---------+
| user_id | int |
| visit_date | date |
+---------------+---------+
(user_id, visit_date) 是该表的主键
该表的每行表示 user_id 在 visit_date 访问了银行表: Transactions
+------------------+---------+
| Column Name | Type |
+------------------+---------+
| user_id | int |
| transaction_date | date |
| amount | int |
+------------------+---------+
该表没有主键,所以可能有重复行
该表的每一行表示 user_id 在 transaction_date 完成了一笔 amount 数额的交易
可以保证用户 (user) 在 transaction_date 访问了银行 (也就是说 Visits 表包含 (user_id, transaction_date) 行)银行想要得到银行客户在一次访问时的交易次数和相应的在一次访问时该交易次数的客户数量的图表
写一条 SQL 查询多少客户访问了银行但没有进行任何交易,多少客户访问了银行进行了一次交易等等
结果包含两列:
transactions_count:客户在一次访问中的交易次数visits_count:在transactions_count交易次数下相应的一次访问时的客户数量
transactions_count` 的值从 `0` 到所有用户一次访问中的 `max(transactions_count)按 transactions_count 排序
下面是查询结果格式的例子:
Visits 表:
+---------+------------+
| user_id | visit_date |
+---------+------------+
| 1 | 2020-01-01 |
| 2 | 2020-01-02 |
| 12 | 2020-01-01 |
| 19 | 2020-01-03 |
| 1 | 2020-01-02 |
| 2 | 2020-01-03 |
| 1 | 2020-01-04 |
| 7 | 2020-01-11 |
| 9 | 2020-01-25 |
| 8 | 2020-01-28 |
+---------+------------+
Transactions 表:
+---------+------------------+--------+
| user_id | transaction_date | amount |
+---------+------------------+--------+
| 1 | 2020-01-02 | 120 |
| 2 | 2020-01-03 | 22 |
| 7 | 2020-01-11 | 232 |
| 1 | 2020-01-04 | 7 |
| 9 | 2020-01-25 | 33 |
| 9 | 2020-01-25 | 66 |
| 8 | 2020-01-28 | 1 |
| 9 | 2020-01-25 | 99 |
+---------+------------------+--------+
结果表:
+--------------------+--------------+
| transactions_count | visits_count |
+--------------------+--------------+
| 0 | 4 |
| 1 | 5 |
| 2 | 0 |
| 3 | 1 |
+--------------------+--------------+
* 对于 transactions_count = 0, visits 中 (1, "2020-01-01"), (2, "2020-01-02"), (12, "2020-01-01") 和 (19, "2020-01-03") 没有进行交易,所以 visits_count = 4 。
* 对于 transactions_count = 1, visits 中 (2, "2020-01-03"), (7, "2020-01-11"), (8, "2020-01-28"), (1, "2020-01-02") 和 (1, "2020-01-04") 进行了一次交易,所以 visits_count = 5 。
* 对于 transactions_count = 2, 没有客户访问银行进行了两次交易,所以 visits_count = 0 。
* 对于 transactions_count = 3, visits 中 (9, "2020-01-25") 进行了三次交易,所以 visits_count = 1 。
* 对于 transactions_count >= 4, 没有客户访问银行进行了超过3次交易,所以我们停止在 transactions_count = 3 。边栏推荐
- 如何开始为您的 Kubernetes 应用程序编写 Helm 图表
- GBase8s Informix Dodker 高可用集群自恢复集群启动命令oninitdb的设计与实现
- Exclusive interview | Cheng Li, chief technology officer of Alibaba: cloud + open source together form a credible foundation for the digital world
- 考完PMP后有什么益处
- Qt 之自定义界面(实现无边框、可移动)
- 如何使用 grep 跨多行查找模式匹配
- Summer vacation training week1
- std::vector 拷贝、追加、嵌套访问
- Based on the flask to write a small shopping mall project
- 【Untitled】
猜你喜欢

通过递归的方式实现树形结构

How to use grep to find pattern matching across multiple lines
![[image processing] image skeleton extraction based on central axis transformation with matlab code](/img/34/80e777c5c0a2a791acd0892e3e0b04.png)
[image processing] image skeleton extraction based on central axis transformation with matlab code

怎么以管理员身份运行cmd?以管理员身份运行cmd方法介绍

2.1冒泡排序(Bubble Sorting)

AI全流程开发难题破解之钥

Proficient in audio and video development can really do whatever you want

面试官培训课件(非常实用的企业内训课件)

Out-of-the-box problem-solving thinking, putting a "rearview mirror" on the unconscious life

如何开始为您的 Kubernetes 应用程序编写 Helm 图表
随机推荐
Why should kubernetes be used in development environments
HMS Core Discovery 16 review | with tiger mound, embracing new AI "voice" state
Xiaoxiao authorization system V5.0 happy version
力扣sql刷题(四)
基本.分块
从零开始Blazor Server(3)--添加cookie授权
文件上传漏洞
怎么以管理员身份运行cmd?以管理员身份运行cmd方法介绍
幸运抽奖系统带后台源码
fastjson使用方法
如何对SQuAD1.1数据集进行预处理「详解版」
Meituan and hungry were interviewed by Hangzhou supervisors to implement the responsibility of food safety management and prohibit malicious competition
mysql single-line, multi-line subquery
GBase8s Informix Dodker 高可用集群自恢复集群启动命令oninitdb的设计与实现
WPF 实现平移控件
PL/SQL 面向对象
AI全流程开发难题破解之钥
GBase8s核心数据备份
XSS漏洞分析
【每日SQL打卡】DAY 27丨列出指定时间段内所有的下单产品【难度简单】