如何获取交易次数最多的客户的客户信息



我有一个由三个表组成的oracle sql数据库,我想知道,为了检索存储在表customer_info中总购买次数最多的客户的信息,可以编写的最有效的子查询是什么?(采购数据在表purchase_logs中)。即一个客户执行的交易次数,而不是购买的商品数量。也就是说,我的目标是检索购买金额最高的客户的详细信息。我有3个表,一个是customer_info,一个是purchase_logs,最后一个是item_info

My current Approach

SELECT * FROM customer_info
WHERE customer_id = (SELECT cust_id
FROM purchase_logs 
GROUP BY cust_id
ORDER BY COUNT(*)
DESC LIMIT 1);

遗憾的是,这似乎没有给我任何结果。

这是我的数据库模式以及purchase_logs的样例数据,customer_info,item_info期望输出

如果能帮助我了解解决这个问题的正确方法是什么,我将非常感激。

Oracle SQL中没有limit 1,请使用行限制子句代替(下面示例中的fetch first):

SELECT * 
FROM 
(SELECT cust_id, count(*) cnt
FROM purchase_logs 
GROUP BY cust_id
ORDER BY cnt desc
fetch first 1 row only with ties
) vc
join customer_info
on customer_id = vc.cust_id;

相关内容

  • 没有找到相关文章

最新更新