前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ACCESS--分组排名获取常驻小区

ACCESS--分组排名获取常驻小区

作者头像
披头
发布2019-12-26 11:08:44
1.1K1
发布2019-12-26 11:08:44
举报
文章被收录于专栏:datartisan

现如今,端到端感知优化越来越重要了,有时,我们需要获取每个用户的 TOPN 常驻小区。 假设我们有如下业务报表:

我们要获取每个用户的 TOP3 常驻小区,少量小区用 excel 处理就好了,但是一般这种用户级报表都是几百万行,这个时候,数据库就该上场了。

我们先给这个报表添加一列分组排名来标记每个用户不同占用小区的流量,然后筛选分组排名为1,2,3 就好了,今天看一下 ACCESS 如何实现。

1)首先对原表进行排序;

代码语言:javascript
复制
SELECT 
user.msisdn, 
user.cellname, 
user.throughput
FROM [user]
ORDER BY user.msisdn, user.throughput DESC;

得到如下结果:

2)该表基础上,建立子查询得到分组排名;

代码语言:javascript
复制
SELECT 
qry1.msisdn, 
qry1.cellname, 
qry1.throughput,
(select count(*) from qry1 as tbl2 
where qry1.throughput < tbl2.throughput and qry1.msisdn = tbl2.msisdn)+1 AS `rankN`
FROM qry1;

得到如下结果:

3)将分组排名限定为 1,2,3 ,得到最终答案;

代码语言:javascript
复制
SELECT 
qry1.msisdn, 
qry1.cellname, 
qry1.throughput, 
(select count(*) from qry1 as tbl2 
where qry1.throughput < tbl2.throughput and qry1.msisdn = tbl2.msisdn)+1 AS rankN
FROM qry1
WHERE ((((select count(*) from qry1 as tbl2 where qry1.throughput < tbl2.throughput and qry1.msisdn = tbl2.msisdn)+1) In (1,2,3)));

回复 user 获取完整文件

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-09-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 乐享数据8090 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
腾讯云 BI
腾讯云 BI(Business Intelligence,BI)提供从数据源接入、数据建模到数据可视化分析全流程的BI能力,帮助经营者快速获取决策数据依据。系统采用敏捷自助式设计,使用者仅需通过简单拖拽即可完成原本复杂的报表开发过程,并支持报表的分享、推送等企业协作场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档