Sql 除了使用临时表,是否可以将这两个查询组合在一起?

Sql 除了使用临时表,是否可以将这两个查询组合在一起?,sql,oracle,Sql,Oracle,问题1: SELECT MAX(START_DATE) AS HIGHEST_DT FROM T; 问题2: SELECT START_DATE AS LOWER_DT FROM T WHERE END_DATE = HIGHEST_DT; 我希望得到像这样的东西 START_DATE HIGHEST_DT 下面是使用子查询的一种方法 SELECT START_DATE AS LOWER_DT,END_DATE as HIGHEST_DT FROM T WHERE END_DATE = (

问题1:

SELECT MAX(START_DATE) AS HIGHEST_DT
FROM T;
问题2:

SELECT
START_DATE AS LOWER_DT
FROM T
WHERE END_DATE = HIGHEST_DT;
我希望得到像这样的东西

START_DATE HIGHEST_DT

下面是使用
子查询的一种方法

SELECT
START_DATE AS LOWER_DT,END_DATE as HIGHEST_DT
FROM T
WHERE END_DATE = (SELECT MAX(START_DATE) FROM T)

下面是使用
子查询的一种方法

SELECT
START_DATE AS LOWER_DT,END_DATE as HIGHEST_DT
FROM T
WHERE END_DATE = (SELECT MAX(START_DATE) FROM T)

因此,似乎有一个表
t
,有两列,
start\u date
end\u date
(可能还有更多列);您希望查找最近的(最大)开始日期,然后查找结束日期等于此
max(开始日期)
的所有行,对吗

一种方法是(由于未提供测试数据,因此未进行测试):


因此,似乎有一个表
t
,有两列,
start\u date
end\u date
(可能还有更多列);您希望查找最近的(最大)开始日期,然后查找结束日期等于此
max(开始日期)
的所有行,对吗

一种方法是(由于未提供测试数据,因此未进行测试):


我真的希望有两列最高和较低。我真的希望有两列最高和较低_DT@Mr.Maze-如果您有大量数据,您可能需要测试这两种解决方案,看看哪一种更有效。在很多情况下,分析函数(我在解决方案中使用的)速度更快,但并不总是如此。谢谢,我遇到了500万个REC。您的查询运行得更快。@Mr.Maze-{:-)很高兴它对您有效,但如果只快一点,您应该在Prdp的解决方案上留下“正确答案”的标记。(在任何情况下,至少要提高投票率,尽管公平的解决方案是将他的答案作为正确答案,如果您觉得有帮助的话,也许可以提高我的投票率。)随着时间的推移,您将学习这些规则-尽管主要规则是,您可以自由地以您认为正确的任何方式标记答案。@Mr.Maze-如果您有大量数据,您可能希望测试这两种解决方案,看看哪一种更有效。在许多情况下,分析函数(我在解决方案中使用的)更快,但并非总是如此。谢谢,我遇到了500万个REC。您的查询运行得更快。@Mr.Maze-{:-)很高兴它对您有效,但如果只快一点,您应该在Prdp的解决方案上留下“正确答案”标记。(在任何情况下,至少要投票表决,尽管公平的解决办法是留下他的答案作为正确答案,如果你觉得有帮助的话,也许可以投票表决我的答案。)随着时间的推移,你会学到这些规则——尽管主要规则确实是,你可以自由地以任何你认为正确的方式标记答案。