当前位置:   article > 正文

SQL进阶技巧:如何分析可能好有问题?

SQL进阶技巧:如何分析可能好有问题?

目录

0 问题描述

1 数据准备

2 数据分析

3 小结


0 问题描述

给定每个用户的好友列表,好友关系是互相对称的,返回每个用户的可能好友。如果两个用户不是好友关系,并且两者拥有至少一个(或者两个)共同好友,则两者互相是可能好友。

1 数据准备

  1. --建表语句
  2. create table maybe_friend(id string, friends string)
  3. row format delimited fields terminated by ' ';
  4. load data local inpath '/temp/sql.txt' into table maybe_friend;
  5. --数据:用户id、好友id列表
  6. A B,C,D
  7. B A,C,E
  8. C A,B,D,E,F
  9. D A,C,F
  10. E B,C
  11. F C,D

2 数据分析

  1. --sql语句
  2. --创建临时表,将好友关系分解为最细粒度
  3. with friend as (
  4. select id, friend from common_friend lateral view explode(split(friends, ',')) temp as friend)
  5. --将具有至少两个共同好友的临时表与好友关系表进行连接,如果临时表的两个用户是好友关系,则在好友关系表中存在对应记录,否则不存在对应记录,
  6. --表示两者是可能好友
  7. select t2.id1, t2.id2
  8. from
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/运维做开发/article/detail/928991
推荐阅读
相关标签
  

闽ICP备14008679号