SQL求总和的百分比
思路分析:
先通过group by得到每个分类别的总和,再通过开窗函数计算整体的总和,两者相除就得到占比了。
当over()后不加任何内容时,就是对所有的数据进行汇总。
1.使用over (partition by)得到总计
select sites_id,channel_id,volume,sum(volume) over (PARTITION by sites_id) as volume_sum
from (select sites_id,channel_id,sum(volume) as volumefrom volumegroup by sites_id,channel_id) t1
2.计算占比
select sites_id,channel_id,volume,volume_sum,round(volume/volume_sum,2) as rate
from (select sites_id,channel_id,volume,sum(volume) over (PARTITION by sites_id) as volume_sum from (select sites_id,channel_id,sum(volume) as volumefrom volumegroup by sites_id,channel_id) t1)t2
order by sites_id,volume desc
在oracle中,也可以使用专门的比例函数「ratio_to_report」来直接计算
上述操作可以更改如下:
select sites_id,channel_id,round(ratio_to_report(volume) over (PARTITION by sites_id),2) as rate
from (select sites_id,channel_id,sum(volume) as volumefrom volumegroup by sites_id,channel_id) t1
SQL求总和的百分比相关推荐
- sql 累计占比_SQL语句-求总和的百分比
问题:求特定列中的值占总和的百分比.例如,确定所有DEPTNO 10工资占总工资的百分比(DEPTNO 10的工资在总工资中的百分比数). 解决方案 总的来说,在SQL中计算占总数的百分比跟书面计算一 ...
- SQL语句中计算百分比
SQL语句中计算百分比 A.TOTAL_COUNT TOTALCOUNT, A..QUES_COUNT QUESCOUNT, CASE WHEN TOTAL_COUNT = QUES_ ...
- sql求31到第40条数据(id不连续)
sql求31到第40条数据(id不连续) --利用开窗函数,并将其当作结果集 查询其31到第40条 select* from (select *,ROW_NUMBER() over(order by ...
- 如何用sql求平均成绩
用sql求 平均成绩大于80的学生姓名
- sql sum,group by 分组求和后在求总和,with rollup,with cube的区别
有表数据如下: create table tt(name varchar(10),num decimal(18,2),ph int)insert into tt(name,num,ph) values ...
- oracle 把结果加上百分号_用一条sql语句显示数据百分比并加百分号
求数值所占比重 关键点:(round(t1.cnt/t2.totalCount*100,2))||'%' 例子: 如下表所示,车辆信息注册表carInfo ID CAR_TYPE CAR_ONWER ...
- sqlserver加上百分号_用一条sql语句显示数据百分比并加百分号
求数值所占比重 关键点:(round(t1.cnt/t2.totalCount*100,2))||'%' 例子: 如下表所示,车辆信息注册表carInfo ID CAR_TYPE CAR_ONWER ...
- SQL 求 3 列异值的 4 种方法
点击蓝色"有关SQL"关注我哟 加个"星标",天天与10000人一起快乐成长 前两天在抽一段数据时,碰到一个典型问题,初一想,有很多解法,所以特想做一次归纳. ...
- sql求平均日活_日活、周活(周重活)、月活 统计
效果展示: 以上数据为测试数据 实现思路: 按照查询天数往前推规定天 比如周.月 登录表为按月分表(数据量大约一张表1000W+数据) 关键sql: laravel5.1 框架 日活实现方式一: 不使 ...
最新文章
- MATLAB编写ode文件,MATLABODE45问题M文件为br/functiondq 爱问知识人
- Java NIO之Selector(选择器)
- php公告栏系统,PHP系统公告-发送通知给每个人
- 听说现在都考这些React面试题
- 10 文件无效_新手必看!10个CAD常见问题解决技巧
- UE4 身体部件换装实现
- 2018级软件秋季总结
- rails 调用php函数_潜藏在PHP安全的边缘——浅谈PHP反序列化漏洞
- 不在gopath目录下能使用godoc吗_一文搞懂 Go Modules 前世今生及入门使用
- 因为马云,这也许是他们过得最有意思的腊八节
- 要人帮忙,电脑怎么不寄过来?
- 如何用计算机tan角度换算,tan角度换算(tan值求角度计算器)
- Toplitz矩阵 Hankel矩阵 Hilbert矩阵
- 5G六大关键技术及未来发展趋势
- 基于PowerBuilder的病案统计系统的设计与实现
- 飞机大战小游戏 C语言(课设任务)
- 七成知识分子走在过劳死边缘
- 不跟你谈“五险一金”的老板,都是在耍流氓
- 前后端上传到同一个Git仓库
- LC117 Populating Next Right Pointers in Each Node II
热门文章
- 申请专利费用可以减免吗
- 简单java小程序代码_求简单的JAVA小程序的源代码
- 在5G智慧园区的“保龄球道”上,目标全垒打的征途
- vue-router back 返回时携带参数
- nginx $remote_addr 详解
- 《童虎学习笔记》5分钟了解Citus核心系统表
- Html中圆圈怎么画,css怎么画圆?
- java中的example_mybatis中关于example类详解
- git中无法拉取remote仓库中的更新(Untracked Files Prevent Merge)
- linux闹钟alarm