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

请统计:

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

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

实现

(1) 每个店铺的UV统计,最简单的分组统计即可

select shop,count(distinct user_id) as uv
from test2 group by shop;

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

第一步:先统计每个店铺每个访客的访问次数

select user_id,shop,count(*) as cnt
from test2
group by user_id,shop
order by shop,user_id

接下来,我们对访客的访问次数进行倒序排序,并筛选访问次数top3的访客信息,嵌套子查询比较多,可读性不好,因此使用with as

with t1 as (select user_id,shop,count(*) as cntfrom test2group by user_id, shoporder by shop, user_id
),t2 as (select shop,user_id,cnt,row_number() over (partition by shop order by cnt desc) rnfrom t1)
select *from t2 where rn<=3 order by shop ,cnt desc;

7.统计UV、分组TopN相关推荐

  1. java mongo分组统计_mongodb 分组 topN

    [摘要] MongoDB 对于 TopN 功能的需求使用其 shell 脚本来实现有些复杂,而集算器 SPL 语言,则因其离散性.灵活性恰好能弥补 MongoDB 实现方面的不足.若想了解更多,请前往 ...

  2. 3、流量分析--分组TopN统计

    流量分析--分组TopN统计 ===================================================================================== ...

  3. Spark使用RDD实现分组topN(八种方法)

    最近在复习Spark,记录一个使用RDD实现分组topN的方法,一共写了八种,其中有很多地方都是有共性的,我会在代码最后进行总结八种的思路,他们之间的共性以及每一种的优缺点. 以下是样例数据 语文,赵 ...

  4. 【Java】使用MapReduce程序统计UV数量

    1.UV的概念 UV:unique view->一天内访问网站的用户数 下面是统计UV的代码: 首先是MapReduce类的代码 package com.huadian.bigdata.webl ...

  5. hadoop3-求分组topn

    项目需求#求出每一个订单中成交金额最大的三笔 本质:求分组topn #原始订单数据a.txt ---------------------------------------- 订单号,用户id,商品名 ...

  6. Java 8 辣么大(lambda)表达式不慌之—–(五)示例-Collectors中的统计、分组、排序等

    Java 8 辣么大(lambda)表达式不慌之-–(五)示例-Collectors中的统计.分组.排序等 summarizingInt 按int类型统计 maxBy取最大/minBy取最小 aver ...

  7. pyspark进行词频统计并返回topN

    Part I:词频统计并返回topN 统计的文本数据: what do you do how do you do how do you do how are you from operator imp ...

  8. MYSQL统计UV和PV_使用redis做pv、uv、click统计

    redis实时统计 设计思路: 1. 前端smarty插件(smarty_function_murl),将网站所有的连接生成一个urlid,后端根据获取的参数将需要的数据存入redis. 2.后端插件 ...

  9. java group by_Java实现GroupBy/分组TopN功能

    详情 在Java 8 的Lambda(stream)之前,要在Java代码中实现相似SQL中的group by分组聚合功能,还是比较困难的.这之前Java对函数式编程支持不是很好,Scala则把函数式 ...

最新文章

  1. cordova 强制竖屏
  2. sdwan架构怎么搭建?
  3. SDOI 2006 - 保安站岗
  4. Jan 12 - Delete Node in a Linked List; Data Structure; Linked List; Pointer;
  5. 12、play整合Akka
  6. 高德地图 amap 设置鼠标样式
  7. php 代码 自动检查工具下载,PHP_CodeSniffer安装和使用教程(自动代码检查规范工具)...
  8. 精选|2018年6月R新包推荐
  9. 002-JavaScript基本应用
  10. IEEE 会议模板介绍
  11. 电气版CAD学习笔记
  12. 服务器硬件防火墙和软件防火墙的功能和区别
  13. 可见首发《模式识别与智能计算:MATLAB技术实现(第2版)》 百度网盘 下载 分享
  14. i春秋《从0到1:CTFer成长之路》通关WP
  15. 区块链中的epoch
  16. Java流程控制练习题
  17. 【分享】集简云小程序识别名片到CRM流程搭建示例
  18. 计算机基本基础知识实训总结,计算机基础实训总结范文
  19. 机器视觉学习系列四:身份证识别
  20. From scikit-learn to Spark ML

热门文章

  1. 桂工877C语言程序设计,新学期,让梦想在桂工起飞
  2. 让IE9及以上兼容es6,Promise, 及es7的async await
  3. 2004年10月高等教育国际金融全国统一命题考试
  4. cajviewer 卡顿
  5. java找茬_一起来找茬(1)-开发写的神奇左连接
  6. 宏重定义 头问题重定义解决办法
  7. 如何用Xshell快速连接远程电脑
  8. 4.2 热储存与冷储存
  9. 翼方健数CEO罗震——推动区域级数据互联互通的先行者
  10. css 背景效果_软件技术:我写CSS的常用套路(附demo的效果实现与源码)