国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

如何利用SQL創(chuàng)建RFM用戶分析模型

這篇具有很好參考價(jià)值的文章主要介紹了如何利用SQL創(chuàng)建RFM用戶分析模型。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

?? RFM用戶分析模型究竟是什么?在之前的博客已經(jīng)介紹了它的意義以及如何在現(xiàn)有的數(shù)據(jù)的情況下,利用Pandas創(chuàng)建分析模型,這里不再重復(fù),詳細(xì)可以參考我博客https://blog.csdn.net/weixin_48591974/article/details/116192534



?? 這一期將詳細(xì)介紹如何利用SQL直接獲取所需的數(shù)據(jù)去創(chuàng)建RFM用戶分析模型。SQL ---- Structured Query Language(結(jié)構(gòu)化查詢語言 ),它是一種專門用來與數(shù)據(jù)庫溝通的語言,提供了很多從數(shù)據(jù)庫中高效地讀寫數(shù)據(jù)、查詢數(shù)據(jù)的方法。常用的DBMS(數(shù)據(jù)庫管理軟件) 有 MySQL、Access、SQLite、SQL SERVER、Oracle 等等。



Recency:最近一次消費(fèi),即上一次交易距今多少天,反應(yīng)了客戶是否流失;


Frequency:消費(fèi)頻率,一段時(shí)間內(nèi)客戶的消費(fèi)頻率,反應(yīng)了客戶的消費(fèi)活躍度;


Monetary:消費(fèi)金額,一段時(shí)間內(nèi)客戶消費(fèi)總金額,反應(yīng)了客戶價(jià)值


根據(jù) RFM 這 3個(gè) Dimension,可以分為8種客戶類型,如下圖:



如何利用SQL創(chuàng)建RFM用戶分析模型,sql,數(shù)據(jù)庫



?? 以下將簡單介紹3個(gè)指標(biāo)值的計(jì)算方法:



?? F 值的計(jì)算:例如要計(jì)算 子表 orders 里 user_id 為 8002011的值。



如何利用SQL創(chuàng)建RFM用戶分析模型,sql,數(shù)據(jù)庫



?? 統(tǒng)計(jì)數(shù)據(jù)行數(shù),我們可以使用 count() 函數(shù)完成,最后得出 F值為 3



SELECT  count(*)    AS F
FROM    orders
WHERE   user_id = 8002011;


?? M 值的計(jì)算: 使用 sum() 函數(shù)將計(jì)算字段 price * amount 所有行加起來就得出 user_id 8002011 總消費(fèi)金額為 13000



SELECT  sum(price * amount) AS M
FROM    orders
WHERE   user_id = 8002011;


?? R 值的計(jì)算:在orders表中,可見時(shí)間是以 Integer 類型存在,也就是以格蘭威治秒數(shù)(Unix時(shí)間戳)類型存在,指的是從1970年1月1日開始計(jì)算的秒數(shù)。關(guān)于時(shí)間戳和日期轉(zhuǎn)換方法,可以運(yùn)用 python的 datetime module 去實(shí)現(xiàn)轉(zhuǎn)換。例如今天(2024-01-12)所對應(yīng)的時(shí)間戳經(jīng)過轉(zhuǎn)換為 1704988800(秒),因此可以用這數(shù)值減去最近一次消費(fèi)的日期,最后轉(zhuǎn)換成天數(shù),就知道 user_id 8002011最近一次消費(fèi)距離今天為多少天。



SELECT (1704988800 - max(pay_time)) / (24 * 60 * 60) AS R,
FROM    orders
WHERE   user_id = 8002011;


?? 有了以上對3個(gè)指標(biāo)的計(jì)算方法,以下就繼續(xù)介紹各種方法進(jìn)行分析。假設(shè)有如下總的數(shù)據(jù)表(更多數(shù)據(jù)行省略…)



如何利用SQL創(chuàng)建RFM用戶分析模型,sql,數(shù)據(jù)庫



?? 首先通過GROUP BY 子句,將原數(shù)據(jù)進(jìn)行 分組,再通過聚合函數(shù)把字段組合相同的行劃分為同一組。具體語法如下:



SELECT user_id  AS 用戶ID,
       user_name AS 用戶昵稱,
       (1704988800 - max(pay_time)) / (24 * 60 * 60) AS R,
       count(user_id) AS F,  
       sum(price * amount) AS M
FROM   orders
GROUP BY user_id;


?? 這樣就可以把每位用戶的 RFM 值都計(jì)算出來了。



如何利用SQL創(chuàng)建RFM用戶分析模型,sql,數(shù)據(jù)庫



?? 剛才根據(jù) R、F、M 維度表現(xiàn)的高與低,把用戶分劃分為 8 類,我們可以選擇中位數(shù)作為區(qū)分高、低的依據(jù)。



?? 數(shù)據(jù)表 orders 共包含 21名用戶數(shù)據(jù)。所以如果我們想獲取中位數(shù),查詢語句需要寫成 LIMIT 10, 1 由于21的中位數(shù)為 11, 因此 LIMIT 語句的第1個(gè)參數(shù)為 10,第2個(gè)參數(shù)為返回1行的結(jié)果,那就是中位數(shù)的值。



?? 獲取 R 的中位數(shù): 結(jié)果為32



SELECT (1704988800 - max(pay_time)) / (24 * 60 * 60) AS R
FROM   orders
GROUP BY user_id
ORDER BY R
LIMIT 10,1;


?? 獲取 F 的中位數(shù): 結(jié)果為3



SELECT count(user_id) AS F
FROM   orders
GROUP BY user_id
ORDER BY F
LIMIT 10,1;


?? 獲取 M 的中位數(shù): 結(jié)果為 36500



SELECT sum(price * amount) AS M
FROM   orders
GROUP BY user_id
ORDER BY M
LIMIT 10,1;


?? 接著,以如何獲得 “新用戶” 和 "流失用戶"為例去繼續(xù)編寫語句分析。以上已經(jīng)得出 R、F、M 的中位數(shù)。由于R(最近一次消費(fèi))的值越小,說明用戶越活躍,因此低于 32 的被劃分為 R 水平 高,反之為 R 水平 低。同理,我們可以得出 F 和 M 的劃分方法, F:低于 3 為水平 低,反之為 高;M:低于 36500 為水平 低,反之為 高。



?? HAVING 子句在用法上和 WHERE 子句非常相似,它們都能夠根據(jù)指定條件篩選數(shù)據(jù),也可以使用我們在 SELECT 子句中定義的字段別名。不同之處在于,WHERE 子句作用于原數(shù)據(jù)表,用來篩選 行;而 HAVING 子句作用于分組結(jié)果,用來篩選 分組。所以在編寫語句時(shí),必須區(qū)分好。



SELECT user_id  AS 用戶ID,
       user_name AS 用戶昵稱,
       (1704988800 - max(pay_time)) / (24 * 60 * 60) AS R,
       count(user_id) AS F,  
       sum(price * amount) AS M
FROM   orders
GROUP BY user_id
HAVING R <=32
   AND F < 3
   AND M < 36500;


?? 得出"新用戶" 數(shù)據(jù)表:



如何利用SQL創(chuàng)建RFM用戶分析模型,sql,數(shù)據(jù)庫



SELECT user_id  AS 用戶ID,
       user_name AS 用戶昵稱,
       (1704988800 - max(pay_time)) / (24 * 60 * 60) AS R,
       count(user_id) AS F,  
       sum(price * amount) AS M
FROM   orders
GROUP BY user_id
HAVING R > 32
   AND F < 3
   AND M < 36500;


?? 得出"流失用戶" 數(shù)據(jù)表:



如何利用SQL創(chuàng)建RFM用戶分析模型,sql,數(shù)據(jù)庫



?? 同理,其它6個(gè)維度的客戶分析也是同樣編寫相對應(yīng)的條件語句進(jìn)行篩選。對于在眾多的用戶中如何可以快速、科學(xué)地分類,尤其前5個(gè)維度,對于每個(gè)商業(yè)行業(yè)有著重要的作用,也是掌握企業(yè)命運(yùn)的風(fēng)向標(biāo)。文章來源地址http://www.zghlxwxcb.cn/news/detail-790816.html

到了這里,關(guān)于如何利用SQL創(chuàng)建RFM用戶分析模型的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • SQL Server創(chuàng)建用戶并且為用戶授權(quán)

    SQL Server創(chuàng)建用戶并且為用戶授權(quán)

    右鍵點(diǎn)擊登錄名→新建登錄名 進(jìn)入【服務(wù)器角色】在右側(cè)的服務(wù)器角色面板中,勾選public 服務(wù)器角色 說明 sysadmin 執(zhí)行SQL Server中的任何操作 serveradmin 配置服務(wù)器設(shè)置 setupadmin 安裝復(fù)制和管理擴(kuò)展過程 securityadmin 管理登錄和CREATE DATABASE的權(quán)限以及閱讀審計(jì) processadmin 管理SQL Se

    2024年02月10日
    瀏覽(33)
  • SQL Server 創(chuàng)建用戶,用戶授權(quán),實(shí)驗(yàn)報(bào)告

    SQL Server 創(chuàng)建用戶,用戶授權(quán),實(shí)驗(yàn)報(bào)告

    首先我們得有一個(gè)數(shù)據(jù)庫,數(shù)據(jù)庫里有表 職工表: ?部門表: 接下來的操作都是針對以上的表 其次我們來建立登錄用戶 登錄名 為王明, 密碼 為123456. 創(chuàng)建登錄名之后,登錄用戶還不能對數(shù)據(jù)庫進(jìn)行操作,還要對登錄用戶創(chuàng)建數(shù)據(jù)庫用戶 這時(shí)候登錄王明的賬戶,數(shù)據(jù)庫會自

    2024年02月04日
    瀏覽(33)
  • sql 創(chuàng)建sql server數(shù)據(jù)庫文件組

    可以在建立數(shù)據(jù)庫時(shí)候創(chuàng)建 如: CREATE DATABASE MyDB ON PRIMARY ? ? ? ? ? ? ? ? ? ? ? ? ? --主文件組和主要數(shù)據(jù)文件 ? ( NAME=\\\'MyDB_Primary\\\', ? ?FILENAME= \\\'c:MyDB_Prm.mdf\\\'), FILEGROUP MyDB_FG1 ? ? ? ? ? ? ? ? ? --用戶定義文件組1 ? ( NAME = \\\'MyDB_FG1_Dat1\\\', ? ?FILENAME = \\\'c:MyDB_FG1_1.ndf\\\'), ?--次要數(shù)

    2024年02月08日
    瀏覽(94)
  • Sql Server 創(chuàng)建用戶并限制權(quán)限

    Sql Server 創(chuàng)建用戶并限制權(quán)限

    使用sa或者Windows身份驗(yàn)證登錄,【安全性】-【登錄名】,右鍵【新建登錄名】 db owner --擁有數(shù)據(jù)庫全部權(quán)限,包括刪除數(shù)據(jù)庫權(quán)限 db accessadmin --只給數(shù)據(jù)庫用戶創(chuàng)建其他數(shù)據(jù)庫用戶的權(quán)限,而沒有創(chuàng)建登錄用戶的權(quán)限 db securityadmin --可以管理全部權(quán)限、對象所有權(quán)、角色和角

    2024年01月19日
    瀏覽(18)
  • Web安全 SQL注入漏洞測試.(可以 防止惡意用戶利用漏洞)

    Web安全 SQL注入漏洞測試.(可以 防止惡意用戶利用漏洞)

    SQL注入就是 有些 惡意用戶在提交查詢請求的過程中 將SQL語句插入到請求內(nèi)容 中,同時(shí)程序的本身對用戶輸入的內(nèi)容過于相信, 沒有對用戶插入的SQL語句進(jìn)行任何的過濾 ,從而 直接被SQL語句直接被服務(wù)端執(zhí)行 ,導(dǎo)致數(shù)據(jù)庫的原有信息泄露,篡改,甚至被刪除等風(fēng)險(xiǎn)。 SQL注

    2023年04月20日
    瀏覽(25)
  • 利用java.sql包--訪問和處理數(shù)據(jù)庫數(shù)據(jù)

    The java.sql package in Java provides the API for interacting with relational databases using JDBC (Java Database Connectivity). JDBC is a standard Java API that allows Java programs to connect to and interact with various database management systems (DBMS) using SQL (Structured Query Language). The java.sql package contains several important interfaces and

    2024年02月10日
    瀏覽(29)
  • SQL語句創(chuàng)建數(shù)據(jù)庫

    SQL語句如下: (1) name: 數(shù)據(jù)文件名稱一般為 ( name ) _Data ,日志文件名稱一般為( name )_Log 。 (2) filename: 數(shù)據(jù)文件名后綴為 .mdf ,日志文件名后綴為 .ldf 。 (3) maxsize: 設(shè)置為 unlimited 時(shí),表示文件最大大小無限制。 (4) filegrowth: 可以設(shè)置為具體值(—M)或者百分比

    2024年02月13日
    瀏覽(40)
  • 使用SQL語句創(chuàng)建數(shù)據(jù)庫與創(chuàng)建表

    使用SQL語句創(chuàng)建數(shù)據(jù)庫與創(chuàng)建表

    ??個(gè)人主頁:?? :???初階牛??? ??推薦專欄: ?????? c語言初階 ??個(gè)人信條: ??知行合一 ??本篇簡介:: 本篇記錄一下牛牛在學(xué)校學(xué)習(xí)的sql serve數(shù)據(jù)庫知識,內(nèi)容比較基礎(chǔ)適合,適合數(shù)據(jù)庫初學(xué)者學(xué)習(xí),希望對大家有些幫助,一起加油吧! 創(chuàng)建數(shù)據(jù)庫模板: 還是范例看的更

    2024年02月03日
    瀏覽(21)
  • SQL語句創(chuàng)建數(shù)據(jù)庫詳解

    在SQL中,創(chuàng)建數(shù)據(jù)庫的語句通常是使用 CREATE DATABASE 語句。讓我們來詳細(xì)解釋一下這個(gè)語句,并通過一個(gè)示例來說明如何創(chuàng)建數(shù)據(jù)庫。 CREATE DATABASE語句詳解 CREATE DATABASE 語句用于在數(shù)據(jù)庫管理系統(tǒng)中創(chuàng)建一個(gè)新的數(shù)據(jù)庫。它的基本語法如下: 其中, database_name 是要?jiǎng)?chuàng)建的數(shù)據(jù)

    2024年02月19日
    瀏覽(29)
  • Python:利用pymssql模塊操作SQL server數(shù)據(jù)庫

    Python:利用pymssql模塊操作SQL server數(shù)據(jù)庫

    python默認(rèn)的數(shù)據(jù)庫是 SQLlite,不過它對MySql以及SQL server的支持也可以。這篇文章,介紹下如何在Windows下安裝pymssql庫并進(jìn)行連接使用。。。 環(huán)境:Windows_64位 版本:python3.6 一、簡單介紹 pymssql是一個(gè)python的數(shù)據(jù)庫接口,基于FreeTDS構(gòu)建,對_mssql模塊進(jìn)行了封裝,遵循python的DBAP

    2024年02月12日
    瀏覽(93)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包