当前位置: 首页 > news >正文

广州自适应网站建设免费建设网站平台

广州自适应网站建设,免费建设网站平台,怎么开店铺,重庆工商大学飞猪SQL面试题—重点用户 在一些场景中我们经常听到这样的一些描述,例如20%的用户贡献了80%的销售额,或者是20%的人拥有着80%的财富,你知道这样的数据是怎么算出来的吗 数据如下,uid 是用户的id ,amount是用户的消费金额 |uid|amount| ---…

飞猪SQL面试题—重点用户

在一些场景中我们经常听到这样的一些描述,例如20%的用户贡献了80%的销售额,或者是20%的人拥有着80%的财富,你知道这样的数据是怎么算出来的吗

数据如下,uid 是用户的id ,amount是用户的消费金额

|uid|amount|
+---+------+
|  1|    20|
|  2|    19|
|  3|  3000|
|  4|   200|
|  5|   300|
|  6|  2000|
|  7|    10|
|  8|     3|
|  9|     2|
| 10|     1|
| 11|     1|
| 12|  4000|
| 13|     5|
| 14|     5|
+---+------+

现在我们需要

  1. 计算出贡献出90%的销售额的用户
  2. 贡献出90%的销售额用户的人数占比

这里的计算逻辑就是按照用户的销售额从大到小进行累加,找到超过90的临界点,那这些用户就是我贡献出90%的销售额的用户,是重点用户。

计算出当前销售额和累计销售额的占比

首先我们计算出当前销售额和累计销售额,我们直接使用sum 窗口函数即可,这里我们没有partition by ,因为我们就是计算全部,不需要分组

select uid,amount,sum(amount)over(order by amount desc) as cur_amount,sum(amount)over() as total_amount
from amount

有了cur_amount和total_amount 计算占比就很简单了

select uid,amount,round(sum(amount)over(order by amount desc) /sum(amount)over(),2) as rate
from amount

image-20241112210024240

找到临界点

其实这个这个时候我们可以看到在第三个用户也就是用户id 为6的那一行,累计销售占比已经超过了90%,也就是94%,此时的用户id 是13、3、6,这个时候我们的问题是我们要怎么把三个用户提出来呢

一般这个时候我们有两种实现方式

  1. 排序,就像提取分组前几一样,我们通过序号小于等于多少
  2. 标志位,满足的都是true 不满足的都是false,或者满足的都是1不满足的都是0

我们这个场景很明显用排序不是那么方便,因为这里的百分比值没有准确等于90%的,跟排序不一样,所以我们用标志位,我们要的数据用true 表示,不要的用false 表示

这里我们判断true 的逻辑是

  1. rate 小于0.9
  2. 当前rate 大于等于0.9,但是前面一个rate 小于0.9,那么此时当前记录包括之前的记录都是我们需要的,当前记录就是边界
selectuid,amount,rate,if(rate<0.9 or (rate>0.9 and lag(rate,1,0)over(order by amount desc)<0.9),true,false) as flag
from(select uid,amount,round(sum(amount)over(order by amount desc) /sum(amount)over(),2) as ratefrom amount
)tmp

image-20241112212355378

我们可以看到数据是正确的,最后汇总一下

selectflag,count(1)
from(selectuid,amount,rate,if(rate<0.9 or (rate>0.9 and lag(rate,1,0)over(order by amount desc)<0.9),true,false) as flagfrom(select uid,amount,round(sum(amount)over(order by amount desc) /sum(amount)over(),2) as ratefrom amount)tmp
)
group by flag
grouping sets(flag,null)

image-20241112213635278

总共14个人中,3个人的消费占了90%的总消费额

http://www.yidumall.com/news/87675.html

相关文章:

  • 100个最好的微信小程序微信小程序排名关键词优化
  • 网站建设市场规模一个新的app如何推广
  • 火山视窗软件开发平台北京百度seo点击器
  • 手机百度关键词排名 网站优化软件怎么下载百度
  • 福田建网站费用关于网站推广
  • 宁波网站制作哪家全面百度广告一级代理
  • 郯城县网站建设google play官网
  • 凤山网站seo宁波网站建设优化企业
  • 北京 响应式网站建设谷歌浏览器下载视频
  • 做网站和APP需要多少钱郑州网站优化seo
  • linux 做网站seo排名优化联系13火星软件
  • 杭州网站建设哪里好北京seo薪资
  • 做淘宝客要自己的网站如何创建自己的网站
  • 专业做网站建设设计化学sem是什么意思
  • 建大型网站公司代运营公司哪家好一些
  • 建设网站建设安全培训平台河北网站seo地址
  • 海外如何淘宝网站建设最知名的网站推广公司
  • 重庆有哪些做网站的公司湖南专业seo优化
  • 甜点网站要怎么做小说百度风云榜
  • 芜湖先锋网站两学一做如何在百度发布文章
  • 怎么用手机搭建网站百度关键词价格排行榜
  • 公司网站 用 个人备案域名电商网站上信息资源的特点包括
  • 东圃做网站公司培训体系搭建
  • 不申请域名可以 做网站吗郑州seo招聘
  • 专业的句容网站建设seo谷歌
  • wordpress自己设计优化大师手机版下载
  • 网站开发是web开发吗windows优化大师会员兑换码
  • 南京做网站yuanmus百度商城官网
  • 电商网站建设重要性业务网站制作
  • 制作好的网页模板如何放入网站cms中宽带营销策略