我正在尝试使用此解决方案来解决如何根据值折叠记录。
表1(输入)
Emp_ID Start_Date End_Date Rating Department Salary
2000 01012011 12312011 A HR 10000
2000 01012012 12319999 A HR 20000
3000 01012011 12312011 B Operations 50000
3000 01012012 12312012 B Operations 60000
3000 01012013 12319999 C Operations 70000
表2(输出)
Emp_ID Start_Date End_Date Rating Department
2000 01012011 12319999 A HR
3000 01012011 12312012 B Operations
3000 01012013 12319999 C Operations
数据库是oracle。我只需要开始研究如何解决这个问题,以便我能够解决这个问题。
先谢谢..
编辑:假设表1&表2列出了EMP_NAME专栏。但我无法在table2中加载此列作为组,不要让我这样做..(我正在谈论Pablo Santa Cruz给出的解决方案)
任何解决方案......
编辑:编辑表格结构agan..sorry for confusion
答案 0 :(得分:2)
试试这个:
select emp_id, rating, min(start_date), max(end_date)
from table_1
group by emp_id, rating
如果您需要在table_2
表上实际存储值,请使用create table table_2 as
启动上一个SQL语句。
考虑到你的评论,你可以这样做:
create table table_2 as
select emp_id, rating, min(start_date), max(end_date),
'EMP_DEPT_INFO' as emp_deparment
from table_1
group by emp_id, rating
其他可能性可能是首先创建表,然后执行alter table
以包含新列。