oracle PARTITION BY 的使用我有一个表,里面记录的是某公司的业务情况.有,日期(1,2,3月),大区(亚洲,欧洲,美洲),小区(亚洲有,中国,日本,韩国;欧洲有,英国,法国,德国;美洲有,美国,加拿大,

来源:学生作业帮助网 编辑:作业帮 时间:2024/10/06 08:16:18
oracle PARTITION BY 的使用我有一个表,里面记录的是某公司的业务情况.有,日期(1,2,3月),大区(亚洲,欧洲,美洲),小区(亚洲有,中国,日本,韩国;欧洲有,英国,法国,德国;美洲有,美国,加拿大,
xTnA~3R[/EWBGXX2hzӠ(-hlBJ XE^frW `hٝw~se0=8G<|8yvn8׼[1-r[vD߮b5ȴO+>#mgq2AB,I6v;?}$/>η5HB#s ٭#wU:?+WApWp)>TTPAI@6K?j֫"_uXxl`N!N2)uUրoD.ڏ%aeP.JuS,,,HFm\}hC6Sc[,=XԴ,3Oue$d#[{&<׼'F2ajpA$ ݤs4hiW!3D BYZj5M&bzǫ(DtfZVl2 OS3ՄI-t|* hȣ ?<i0#~땤3QYvSիh84_Qn|~s:E4jyWD:jqZ '8P n/ҐXr:N|bokM sɏ*PYlgC9XQlebwp~!c.P"l8%fU2B $vx*u|y"ˌS<^VP jN [qDM3F\-Ãẗw

oracle PARTITION BY 的使用我有一个表,里面记录的是某公司的业务情况.有,日期(1,2,3月),大区(亚洲,欧洲,美洲),小区(亚洲有,中国,日本,韩国;欧洲有,英国,法国,德国;美洲有,美国,加拿大,
oracle PARTITION BY 的使用
我有一个表,里面记录的是某公司的业务情况.有,日期(1,2,3月),大区(亚洲,欧洲,美洲),小区(亚洲有,中国,日本,韩国;欧洲有,英国,法国,德国;美洲有,美国,加拿大,墨西哥),业务种类(业务一.业务二,业务三),以及具体收入.现在要求用 PARTITION BY 选出每个月收入最多的大区~~~
谢谢高手多帮助啊啊啊~~~

oracle PARTITION BY 的使用我有一个表,里面记录的是某公司的业务情况.有,日期(1,2,3月),大区(亚洲,欧洲,美洲),小区(亚洲有,中国,日本,韩国;欧洲有,英国,法国,德国;美洲有,美国,加拿大,
create table test_ta(year number,month number,area varchar2(20),region varchar2(20),business varchar2(20),income number);
select *
from (select year,
month,
area,
dense_rank() over(partition by year,month order by income desc) rank
from (select t.year,t.month,t.area,sum(income) income
from test_ta t
group by t.year,t.month,t.area))
where rank = 1
-- 最内层子查询:统计每个月份,每个大区的总收入
-- 第二层子查询:对每个月份,每个大区进行分组,按照总收入倒序排序,给出序号(此处同一月份总收入相同的,序号相同,看你自己的需求,看是取一条还是都取,取一条,则把dense_rank()替换成row_number())
-- 最外层查询:查询排序序号为1的记录,即每月总收入最多的大区