进店却未进行过交易的顾客

问题描述(来源于LeetCode)

表: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 ,以及他们只光顾不交易的次数。

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

代码实现

1
2
3
4
5
6
# Write your MySQL query statement below
SELECT t1.customer_id,count(*) AS count_no_trans
FROM Visits t1
LEFT JOIN transactions t2 ON t1.Visit_id=t2.Visit_id
where t2.transaction_id is null
GROUP BY customer_id

复杂度分析

  • 时间复杂度:2028ms