如何显示oracle sql中每行最后一条记录的结果
我有一种情况,我必须显示Oracle SQL中每行最后一条记录的结果 例如:- 我说的是如何显示oracle sql中每行最后一条记录的结果,sql,oracle,oracle11g,oracle12c,Sql,Oracle,Oracle11g,Oracle12c,我有一种情况,我必须显示Oracle SQL中每行最后一条记录的结果 例如:- 我说的是 **brand** **result** **year_month** nike 300 2018-01 nike 300 2018-02 nike 300 2018-03 nike 300 2018-04 根据上个月的记录,我每个月都要宣传我在大型跨国公司面试中遇到
**brand** **result** **year_month**
nike 300 2018-01
nike 300 2018-02
nike 300 2018-03
nike 300 2018-04
根据上个月的记录,我每个月都要宣传我在大型跨国公司面试中遇到的这个问题
select brand,
(select result
from (
select result
from your_table
order by to_date(year_month,'yyyy-mm') desc
)
where rownum = 1
) result,
year_month
from your_table;
问题还不清楚。这就是你要找的吗?类似的东西
确保每个品牌都有自己的结果分区
告诉它获取属于上一个orderby
year\u月的
值result
50
没有上一个年\月的值那么明显
你是否正确理解了这个问题,还是希望我们先理解它?“每行最后一条记录”对我来说没有意义。你是说“每张桌子上的最后一张唱片”吗?还有“大型跨国公司”?你能澄清一下这是什么意思吗?谢谢,你说得对!每个表中的最后一条记录。
select brand,
(select result
from (
select result
from your_table
order by to_date(year_month,'yyyy-mm') desc
)
where rownum = 1
) result,
year_month
from your_table;
SELECT brand, Max(result) OVER(PARTITION BY brand), year_month
FROM brand;
SQL> with test (brand, result, year_month) as
2 (select 'nike', 200, '2018-01' from dual union all
3 select 'nike', 200, '2018-02' from dual union all
4 select 'nike', 200, '2018-03' from dual union all
5 select 'nike', 50 , '2018-04' from dual
6 )
7 select brand,
8 first_value (result) over (partition by brand order by year_month desc) result,
9 year_month
10 from test
11 order by year_month ;
BRAN RESULT YEAR_MO
---- ---------- -------
nike 50 2018-01
nike 50 2018-02
nike 50 2018-03
nike 50 2018-04
SQL>