题目
有50W个京东店铺,每个顾客访客访问任何一个店铺的任何一个商品时都会产生一条访问日志,
访问日志存储的表名为Visit,访客的用户id为user_id,被访问的店铺名称为shop,数据如下:

     u1  au2  bu1  bu1  au3  cu4  bu1  au2  cu5  bu4  bu6  cu2  cu1  bu2  au2  au3  au5  au5  au5  a

请统计:
(1)每个店铺的UV(访客数)
(2)每个店铺访问次数top3的访客信息。输出店铺名称、访客id、访问次数;

实现:

数据准备:

CREATE TABLE visit( user_id string, shop string )ROW format delimited FIELDS TERMINATED BY '\t'; INSERT INTO TABLE visit VALUES( 'u1', 'a' ),( 'u2', 'b' ),( 'u1', 'b' ),( 'u1', 'a' ),( 'u3', 'c' ),( 'u4', 'b' ),( 'u1', 'a' ),( 'u2', 'c' ),( 'u5', 'b' ),( 'u4', 'b' ),( 'u6', 'c' ),( 'u2', 'c' ),( 'u1', 'b' ),( 'u2', 'a' ),( 'u2', 'a' ),( 'u3', 'a' ),( 'u5', 'a' ),( 'u5', 'a' ),( 'u5', 'a' );

(1)每个店铺的UV(访客数)

方法一:
每个店,即以shop来group by 分组,count计算访客数量同时去重即可;

        SELECT shop,count(DISTINCT user_id)FROM visitGROUP BY shop;

方法二:
使用shop和user_id 联合去重,即可去重!

        SELECT t.shop,count(*)FROM(SELECT user_id,shopFROM visitGROUP BY shop,user_id,) tGROUP BY t.shop

(2)每个店铺访问次数top3的访客信息。输出店铺名称、访客id、访问次数;

思路
① 先统计 每个shop中、每个用户的访问次数,用联合分组,

selectshop,user_id,count(*) ct
from visit
group by shop,user_id;---t1

②对shop开窗,用rank() 计算用户的访问次数排名

selectshop,user_id,ct, rank() over(partition by shop order by ct DESC) rk
from t1;---t2

③ 用where 限制rk排名, 筛选出每个shop访问次数排名前三的用户;

selectshop,user_id,ct
from t2
where rk<=3

最终:

 select shop,user_id,ctfrom(select shop,user_id,ct,rank() over(partition by shop order by ct DESC) rkfrom (select shop,user_id,count(*) ctfrom visitgroup by shop,user_id)t1)t2where rk<=3;

参考:
https://blog.csdn.net/Poolweet_/article/details/109614982
https://www.modb.pro/db/79137

求每个店铺访问次数top3的访客信息相关推荐

  1. 博客添加音乐插件、网站运行时间、文章阅读次数和网站访客统计

      今天为博客增加了音乐播放插件.博客页脚网站安全运行时间.文章阅读次数以及网站访客统计的功能,接下来进行详细介绍. 博客音乐插件的使用   本博客使用的音乐播放插件为hexo-tag-aplayer ...

  2. 海康接口开发之访客登记(二) 推送访客信息

    前言 海康接口开发之访客登记(一) 获取人员信息 海康接口开发之访客登记(二) 推送访客信息 一.步骤 感觉这里没什么好说的,就是获取些控件值,序列化一下到json然后往接口地址推送,直接贴代码吧=. ...

  3. php 采集qq空间,php使用curl抓取qq空间的访客信息示例_php技巧

    这篇文章主要介绍了php使用curl抓取qq空间的访客信息示例,需要的朋友可以参考下 config.php<?php define('APP_DIR', dirname(__FILE__)); ...

  4. php获取访客信息,PHP 获取访客的信息

    class="php"><?php header('Content-Type: text/html; charset=utf-8'); //获取访客的信息 class ...

  5. html记录访问量,显示访客信息 js记录访问次数

    [javascript]代码库 var expDays = 10; var exp = new Date(); exp.setTime(exp.getTime() + (expDays*24*60*6 ...

  6. 如何记录访问自己网站的访客ip

    可以在代码中加入 <?php $ip=$_SERVER["REMOTE_ADDR"]; file_put_contents('ip.txt',$ip,FILE_APPEND) ...

  7. 如何查看网站访客信息?

    access日志 众所周知,日志文件是维护网站时进行各种错误判断的一个重要依据,线上如果出现事故我们通常都是查看日志去进行问题定位并且进行修复.使用好Nginx日志会有利于我们线上进行修复异常问题. ...

  8. Sql面试题-求店铺访问top3信息

    题目: 有个网店,每个顾客访客访问任何一个店铺的任何一个商品时都会产生一条访问日志,访问日志存储的表名为Visit,访客的用户id为uid,被访问的店铺名称为shop,请统计: 1)每个店铺的UV(访 ...

  9. uv,top3访问次数

    现在有很多店铺,每个顾客访问任何一个店铺的任何一个商品时都会产生一条访问日志,访问日志存储的表名为visit,访客的用户id为user_id,被访问的店铺名称为shop,请统计: 每个店铺的UV(访客 ...

最新文章

  1. 开发日记-20190706 关键词 读书笔记 《Perl语言入门》Day 3
  2. 【二叉查找树BST】二叉查找树的基本操作总结
  3. WEB前端学习一 JS预解释
  4. java ehcahce刷新_springboot结合ehcache防止恶意刷新请求的实现
  5. 电脑练习打字软件_Type Fu for Mac 4.5.7 共享版 – 优秀的键盘打字练习软件
  6. Qt|设计模式工作笔记-对单例模式进一步的理解(静态加单例实现专门收发UDP对象)
  7. 工具 | 终于等到你!地表最强工具来袭!
  8. ORACLE LATERAL-SQL-INJECTION 个人见解
  9. matlab求两向量夹角_高等数学之向量代数与空间解析几何知识点与题型总结
  10. unity运行环境_LG电子与Unity合作仿真软件 加速研发更安全的自动驾驶汽车系统...
  11. 【神仙打架】特奖答辩前10出炉,两名CS学生3篇顶会一作,有人周读3000页英文论文...
  12. mobi格式转换成pdf格式
  13. ewiews面板回归模型操作_用eviews怎么做面板数据的多元回归分析呀?
  14. 神经影像研究驱动的脑龄估计作为脑疾病和健康状况识别的生物学标记
  15. CyclicBarrier栅栏
  16. 1.5 18:鸡尾酒疗法
  17. 个人和企业如何注册腾讯云账号?
  18. Raspberry Pi 3B学习笔记
  19. 【LeetCode】77 组合 (C++)
  20. 一款简洁的 image-crop.js图片裁剪工具

热门文章

  1. N皇后问题(分支限界法)
  2. 分支限界法 java_java中的常用算法之分支限界算法
  3. 安兔兔评测HTML5,安兔兔评测
  4. 我的世界连接服务器显示XX,我的世界连接服务器显示bad login
  5. 维纶屏幕配方倒入导出方法
  6. PDF在转Excel免费的!在线工具!轻松搞定
  7. iqoo刷鸿蒙教程,IQOO手机如何刷机?IQOO手机卡刷教程
  8. 微信小程序教程:文字跑马灯效果
  9. html5输入三元素_HTML5输入元素的状态
  10. 我们服务器有无限钻石,方舟生存进化无限钻石版