的输出第一个结果我想从Oracle中的子查询中选择第一个和最后的结果。 我不能使用“rownum”,因为我使用的“order by”完全改变了“rownum”的顺序。
请提出一些解决方案。 thanx fr的帮助。选择从一个子查询
Q
选择从一个子查询
-1
A
回答
0
你不能使用“rownum”,因为你需要第一个和最后一个值 - 否则你可以使用rownum,把你的代码放到子查询中,并从中选择并在外部查询中通过rownum进行过滤。实际上,您需要使用ROW_NUMBER()分析函数等(均按顺序排列......并按顺序排列...... desc,因此您可以在单个外部查询中同时获得第一个和最后一个结果。)
如果关系是可能的,你可能更喜欢DENSE_RANK获得并列第一的所有行(或过去);相反,ROW_NUMBER()将返回并列第一行“的一个”(或最后一个);其中之一,特别是,是随机的
如果你想看到一个例子,您的问题提供的样本数据
0
使用keep
如果你有一个聚集查询这就是它是专为它看起来是这样的。:
select x,
max(outcome) keep (dense_rank first order by datetime asc) as first_outcome,
max(outcome) keep (dense_rank first order by datetime desc) as last_outcome,
from t
group by x;
使用first_value()
和last_value()
如果没有聚集:
select t.*,
first_value(outcome) over (partition by x order by datetime) as first_outcome,
last_value(outcome) over (partition by x order by datetime) as last_outcome
from t;
0
我解决了这个用ROW_NUMBER()函数与OVER(ORDER BY ..)。
相关问题
- 1. 另一个子查询使用从子查询的列和选择子查询
- 2. 从子查询中选择*
- 3. 多个子查询结果到主查询,选择选择
- 4. Sqlite更新与选择子查询只选择第一个值
- 5. SQL查询选择一个*
- 6. 选择一个查询
- 7. 显示结果选择查询,使用一个选择查询
- 8. CakePHP从子查询中选择(从SELECT(...)中选择foo)
- 9. 多列名不选择从子查询
- 10. 从子查询,SQL选择行,解决
- 11. T-SQL从子查询中选择MAX
- 12. 从子查询中获取选择值
- 13. 从DQL中的子查询中选择
- 14. 结果未从子查询中选择
- 15. SQL从子查询中选择
- 16. 从子查询中选择两次
- 17. 选择从查询
- 18. 从另一个mysql查询中选择的mysql查询
- 19. 引用一个MySQL子选择在另一个查询
- 20. 子选择在Oracle查询
- 21. 用子查询选择
- 22. MySQL选择子查询
- 23. Oracle选择子查询
- 24. 选择的Oracle子查询
- 25. Rails子选择查询
- 26. SQL子选择查询
- 27. 在子查询中选择多个列
- 28. 使用子查询选择多个值
- 29. 如何从一个子查询中选择多个列而不是多个相似的子查询?
- 30. 从子查询选择选择其中条件抛出错误
是的,我使用ROW_NUMBER()与OVER,它的工作。日Thnx – user4036695