当前位置:网站首页>实战演练 | 查找在给定时间范围内购买超过 N 件商品的客户
实战演练 | 查找在给定时间范围内购买超过 N 件商品的客户
2022-07-26 00:23:00 【Navicat中国】
跟踪销售指标是了解你的业务的一部分,例如销量和找出最佳客户。为此,你可能希望首先获取有关在整个月、季度、年度或其他时间段内购买最多的客户的数据。这些数据能让你分析他们的购买模式并确定趋势。本文将通过将非常有用的 Count() 函数与 GROUP BY 和 HAVING 子句相结合来提供一些示例查询。
基本查询
我们将在 Sakila 示例数据库执行查询。这是一个很好的规范化模式,对 DVD 租赁商店进行建模,包括film、actor、film-actor 关系,以及连接 film、store 和 rental 的中央 inventory 表。因此,它的客户不是购买电影,而是租借电影。尽管如此,选择数据的标准仍然是一样的,即按 customer_id 计算主 rental 表的行数和分组结果的个数。以下是 Navicat Premium 16中的一个基本查询,它将结果限制为总共租借超过 20 部电影的客户:

这是按 customer_id 对结果进行排序。稍后,我们将按 num_of_films_rented 排序结果。
获取其他客户详细信息
虽然上述查询足以找到那些租借了许多电影的客户,但它不提供除 ID 之外的任何客户详细信息。若要包含更多客户数据,我们需要加入 customer 表。它应该是用 LEFT JOIN,以便只有租借电影的客户才能加入到主查询中。以下是添加了客户名称的结果:

筛选结果
到目前为止,我们已获取非常广泛的数据,包括所有电影和时间段的结果。我们可以针对电影按类别和时间段来获得更具体的信息。为此,我们需要添加更多表。如果你不确定如何将表加入查询,你可以在 Navicat 的对象窗格中选择表,然后运行逆向表到模型...命令:

这会将表添加到建模工具中的模式图中,你就可以很容易查看它们的关系:

在修改后的查询中,我们将结果限制为 2005 年租借的喜剧:

请注意,因为单个类别的租借量较少,最少电影数量已降至 5 或更多。
按计数排序
也许你更想按租金计数查看记录。要做到这一点所需要做的就是包含一个 ORDER BY 子句。以下是的最终查询,按 num_of_films_rented 降序(DESC)排序,因此 2005 年租用喜剧最多的客户会在结果的顶部:

总结
在今天的文章中,我们学习了如何将 Count() 函数与 GROUP BY 和 HAVING 子句结合使用,以深入了解客户的消费习惯。正如你想像的那样,可以使用相同的查询结构来发现与产品销售和/或租赁相关的各种趋势和模式。而收集到的见解可以为指导组织决策带来巨大效益。
往期回顾
边栏推荐
- 12. Neural network model
- 【目录】Nodejs、npm、yarn、BUG
- 合肥提前批
- Sliding window_
- FreeRTOS personal notes - semaphore
- Hefei approved in advance
- Redis killed twelve questions. How many questions can you carry?
- P4047 [JSOI2010]部落划分
- Appium combs the process from start to test and then to end
- 关于“DBDnet: A Deep Boosting Strategy for ImageDenoising“一文理解
猜你喜欢

letfaw

基于SEIR模型的网络医疗众筹传播建模与仿真分析

Distributed transactions: the final consistency scheme of reliable messages

JVM Tri Color marking and read-write barrier

FreeRTOS personal notes - mutex

MySQL - master-slave replication

寻找命令find和locate

Research on the influence of opinion leaders based on network analysis and text mining

The way to understand JS: the principle of object.call and object.create() inheritance

Private cloud disk setup
随机推荐
2022/7/25 考试总结
How to make your JS code more beautiful
YOLOV2 YOLO9000
The way of understanding JS: write a perfect combination inheritance (Es5)
Packet switching and label switching in MPLS
如何让你的 JS 代码写得更漂亮
Applet page generation link sent by SMS
After using MQ message oriented middleware, I began to regret
对比7种分布式事务方案,还是偏爱阿里开源的Seata(原理+实战)
redis的使用
LDP related knowledge
Modeling and simulation analysis of online medical crowdfunding communication based on SEIR model
如何用120行代码,实现一个交互完整的拖拽上传组件?
Mwec: a new Chinese word discovery method based on multi semantic word vector
8个小妙招-数据库性能优化,yyds~
这一次,彻底弄懂 Promise 原理
Hefei approved in advance
MPLS experiment
mysql事务的四大特性以及隔离级别
Bond network card mode configuration