oracle PARTITION BY 的使用我有一个表,里面记录的是某公司的业务情况.有,日期(1,2,3月),大区(亚洲,欧洲,美洲),小区(亚洲有,中国,日本,韩国;欧洲有,英国,法国,德国;美洲有,美国,加拿大,
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/06 14:14:04
![oracle PARTITION BY 的使用我有一个表,里面记录的是某公司的业务情况.有,日期(1,2,3月),大区(亚洲,欧洲,美洲),小区(亚洲有,中国,日本,韩国;欧洲有,英国,法国,德国;美洲有,美国,加拿大,](/uploads/image/z/13580472-48-2.jpg?t=oracle+PARTITION+BY+%E7%9A%84%E4%BD%BF%E7%94%A8%E6%88%91%E6%9C%89%E4%B8%80%E4%B8%AA%E8%A1%A8%2C%E9%87%8C%E9%9D%A2%E8%AE%B0%E5%BD%95%E7%9A%84%E6%98%AF%E6%9F%90%E5%85%AC%E5%8F%B8%E7%9A%84%E4%B8%9A%E5%8A%A1%E6%83%85%E5%86%B5.%E6%9C%89%2C%E6%97%A5%E6%9C%9F%EF%BC%881%2C2%2C3%E6%9C%88%EF%BC%89%2C%E5%A4%A7%E5%8C%BA%EF%BC%88%E4%BA%9A%E6%B4%B2%2C%E6%AC%A7%E6%B4%B2%2C%E7%BE%8E%E6%B4%B2%EF%BC%89%2C%E5%B0%8F%E5%8C%BA%EF%BC%88%E4%BA%9A%E6%B4%B2%E6%9C%89%2C%E4%B8%AD%E5%9B%BD%2C%E6%97%A5%E6%9C%AC%2C%E9%9F%A9%E5%9B%BD%EF%BC%9B%E6%AC%A7%E6%B4%B2%E6%9C%89%2C%E8%8B%B1%E5%9B%BD%2C%E6%B3%95%E5%9B%BD%2C%E5%BE%B7%E5%9B%BD%EF%BC%9B%E7%BE%8E%E6%B4%B2%E6%9C%89%2C%E7%BE%8E%E5%9B%BD%2C%E5%8A%A0%E6%8B%BF%E5%A4%A7%2C)
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的记录,即每月总收入最多的大区