【发布时间】:2019-07-12 16:57:27
【问题描述】:
我有一个这样的数据库表
emp_id start-date end_date title location
111 1-JAN-2000 31-DEC-2003 MANAGER NYO
111 1-JAN-2003 31-DEC-2005 MANAGER BOM
111 1-JAN-2006 31-DEC-2007 CFO NYO
111 1-JAN-2008 31-DEC-2015 MANAGER NYO
我已经用 GROUP BY 和 min , max 函数创建了一个 SQL 代码
select emp_id,min(start_date),max(end_date),title
from table1
group by emp_id,title
预期是这样的:
111 1-JAN-2000 31-DEC-2005 MANAGER
111 1-JAN-2006 31-DEC-2007 CFO
111 1-JAN-2008 31-DEC-2015 MANAGER
我得到的是:
111 1-JAN-2000 31-DEC-2015 MANAGER
111 1-JAN-2006 31-DEC-2007 CFO
【问题讨论】:
-
每一行代表一个组。您的组定义为:emp_id 和 title。因此,您预期中的第 1 行和第 3 行被归为一组...为了帮助您,我们可能需要查看 table1 中的示例数据。
-
所以你不想要 min 和 max - 你想要在 title 值发生变化时启动一个新组的东西。
-
@kbball : 我添加了位置栏
-
@DanielM :你能建议我一个解决方法吗?