如何显示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 根据上个月的记录,我每个月都要宣传我在大型跨国公司面试中遇到

我有一种情况,我必须显示Oracle SQL中每行最后一条记录的结果

例如:- 我说的是

**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>