mysql数据库视图的使用

1. 视图的定义

视图(View)是一种虚拟的表,其结构和数据来自于一个或多个基本表,可以被当作普通表一样进行查询操作,但实际上不存储任何数据。在数据库中,视图可以被看作是一种数据访问的方式,它可以隐藏底层表的复杂性,提供简洁易懂的数据访问接口,方便用户进行查询、分析和报表等操作。

视图的作用
视图的作用主要有以下几个方面:

简化查询操作:通过创建视图,可以将多个表的数据组合成一个逻辑上的整体,减少了用户在查询时需要编写复杂的 SQL 语句。
隐藏复杂性:数据库中有时候存在多个关联表,为了查询这些表的数据需要编写复杂的 SQL 语句,使用视图可以将这些关联表的查询逻辑隐藏起来,简化了用户对数据库的操作。
提高数据安全性:视图可以对底层表进行过滤和限制访问,可以对用户提供必要的访问权限,可以保护数据的隐私和安全。
减少数据冗余:有时候需要将数据多次查询,这样容易导致数据冗余,使用视图可以避免这种情况的发生,同时可以减少网络流量和提高数据访问效率。

 2. 原数据

R : Recency.  F: Frequency  M :Montary

3. 示例

3.1 创建视图存储 R、F、M的最大最小值

创建视图存储R、F、M的最大最小值,为指标的离散提供数据

create view RFM_maxmin24(maxR,minR,maxF,minF,maxM,minM)
as
SELECT MAX(Recency) , MIN(Recency), MAX(Frequency), MIN(Frequency), MAX(Monetary), MIN(Monetary) 
FROM customers1997 

视图

3.2 创建视图计算对R、F、M进行离散化

注意Recency是越小越好指标,公式同F和M有所不同

计算RFM的各项分值:

★ R ,距离当前日期越近,得分越高,最该高5分,最低1分

★ F ,交易频率越高,得分越高,最该高5分,最低1分

★ M ,交易金额越高,得分越高,最该高5分,最低1分

create view Customer_RFM
as
SELECT customer_id, Recency, Frequency, Monetary,
 CASE 
   WHEN (maxR - Recency) <= (maxR - minR)/ 5 THEN 1
   WHEN (maxR - Recency) <= 2 * (maxR - minR)/ 5 THEN 2 
   WHEN (maxR - Recency) <= 3 * (maxR - minR)/ 5 THEN 3 
   WHEN (maxR - Recency) <= 4 * (maxR - minR)/ 5 THEN 4
   WHEN (maxR - Recency) <= 5 * (maxR - minR) / 5 THEN 5 
   ELSE NULL 
 END AS R, 
 CASE 
   WHEN (maxF - Frequency) <= (maxF - minF)/ 5 THEN 5 
   WHEN (maxF - Frequency) <= 2 * (maxF - minF) / 5 THEN 4 
   WHEN (maxF - Frequency) <= 3 * (maxF - minF) / 5 THEN 3 
   WHEN (maxF - Frequency) <= 4 * (maxF - minF) / 5 THEN 2
   WHEN (maxF - Frequency) <= 5 * (maxF - minF) / 5 THEN 1
   ELSE NULL 
 END AS F, 
 CASE 
   WHEN (maxM - Monetary) <= (maxM - minM) / 5 THEN 5 
   WHEN (maxM - Monetary) <= 2 * (maxM - minM)/ 5 THEN 4 
   WHEN (maxM - Monetary) <= 3 * (maxM - minM)/ 5 THEN 3 
   WHEN (maxM - Monetary) <= 4 * (maxM - minM)/ 5 THEN 2 
   WHEN (maxM - Monetary) <= 5 * (maxM - minM) / 5 THEN 1
   ELSE NULL 
 END AS M
FROM customers1997 CROSS JOIN rfm_maxmin24

结果:

3.3 建立客户评分表

CREATE TABLE Customer_Value AS
SELECT customer_id, Recency, Frequency,Monetary, R, F, M, 
 R * 5 + F * 3 + M * 2 as value
FROM customer_rfm

 

  • 17
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值