当前位置:网站首页>How to analyze fans' interests?
How to analyze fans' interests?
2022-07-07 03:00:00 【Monkey data analysis】

【 subject 】
There is a “ Fan attention table ”, contain 3 A field : user id、 Follow the media id、 date .

【 problem 】“ Fan attention table ” There is a situation that one user pays attention to multiple media at the same time , such as : user id by A001 Users of , Focus on the media id The data is 1010,1020,1031. In order to facilitate the later analysis of fans' interests , Please split this situation in the table into multiple .
For example, for users A001, Its conversion is as follows :

【 Their thinking 】
Such problems are called “ Column turned ”, stay MySQL There are generally three steps to deal with it :
1) Create a “ Sequence table ”;
2) Join multiple tables , Copy each piece of data in the original table into multiple pieces ;
3) Use substring_index Function to get the final result .
First step : establish Sequence table
“ Sequence table ” It means that there is only one field , Stored is a sequence of numbers , such as :

among ,“ Sequence ” The maximum value of is the maximum number of media a user pays attention to in this problem .
select max(length( Follow the media id) - length(replace( Follow the media id,',','')) + 1) as The maximum number of media attention
from Fan attention table ;The return result is :

Then we need new “ Sequence table ” Namely :

The second step : Multi table join

Use multi table join , Can pass “ Sequence table ” take “ Fan attention table ” Each line of becomes multiple lines .
Here are two points to note :
1) To ensure that every piece of data in the original table is not lost , choice “ Left link ”, And take the original table as the left table ;
2) The number of copies is limited in the connection condition , The limiting condition is the number of media users pay attention to , namely “ Follow the media id” The number of commas under the field plus 1.
select t1. user id,
t1. Follow the media id,
t1. date ,
t2. Sequence
from Fan attention table t1
left join Sequence table t2 on t2. Sequence <= (length( Follow the media id) - length(replace( Follow the media id,',','')) + 1);The return result is :

The third step : Use the function to get the result
The next step is to put the media id Intercept it , You need to use the string interception function :SUBSTRING_INDEX.
SUBSTRING_INDEX( character string , Separator , Parameters )
among , Separator refers to dividing media in this question id Of “,”;2 Means to separate by separator , Intercept several media from left to right id; If the parameter is negative , It means to intercept several media from right to left id.
select t1. user id,
substring_index(substring_index(t1. Follow the media id,',',t2. Sequence ),',',-1) as Follow the media id,
t1. date
from Fan attention table t1
left join Sequence table t2 on t2. Sequence <= (length( Follow the media id) - length(replace( Follow the media id,',','')) + 1);The return result is :

【 The test point of this question 】
1) Check your understanding of the ordered list ;
2) Check the string interception function SUBSTRING_INDEX Understanding ;
3) Check your understanding of multi table connections .


▼ Click on 「 Read the original 」
▼ Unlock more data analysis courses
边栏推荐
- 普通测试年薪15w,测试开发年薪30w+,二者差距在哪?
- How to design interface test cases? Teach you a few tips to draft easily
- Examples of how to use dates in Oracle
- Redis getting started complete tutorial: replication configuration
- Kysl Haikang camera 8247 H9 ISAPI test
- [software test] the most complete interview questions and answers. I'm familiar with the full text. If I don't win the offer, I'll lose
- 哈希表及完整注释
- Apifox, is your API interface document rolled up like this?
- Planning and design of double click hot standby layer 2 network based on ENSP firewall
- Qt蓝牙:QBluetoothDeviceInfo
猜你喜欢

A complete tutorial for getting started with redis: RDB persistence

AWS learning notes (I)

Have fun | latest progress of "spacecraft program" activities

Remember the problem analysis of oom caused by a Jap query

记一次JAP查询导致OOM的问题分析

Leetcode 77: combination

Derivative, partial derivative, directional derivative

导数、偏导数、方向导数

S120驱动器基本调试步骤总结

软件测试——Jmeter接口测试之常用断言
随机推荐
A complete tutorial for getting started with redis: AOF persistence
c语言字符串排序
Remember the problem analysis of oom caused by a Jap query
KYSL 海康摄像头 8247 h9 isapi测试
[leetcode]Search for a Range
记一次JAP查询导致OOM的问题分析
Redis getting started complete tutorial: client management
Redis入门完整教程:复制配置
[2022 national tournament simulation] polygon - computational geometry, binary answer, multiplication
Static proxy of proxy mode
【软件测试】最全面试问题和回答,全文背熟不拿下offer算我输
如何设计好接口测试用例?教你几个小技巧,轻松稿定
测试优惠券要怎么写测试用例?
AWS learning notes (I)
Niuke programming problem -- double pointer of 101 must be brushed
Convert widerperson dataset to Yolo format
Kubernetes source code analysis (II) -- resource
Statistics of radar data in nuscenes data set
Leetcode 77: combination
Redis入门完整教程:复制拓扑