sql >> Databáze >  >> RDS >> Oracle

Jak získat poslední dva řádky s určitou hodnotou podle data v SQL

UPRAVIT Aktualizováno tak, aby se nepočítala duplicitní hodnota data pro stejný varchar2 .

Nahrazeno RANK() s DENSE_RANK() takový že to přiřadí nepřetržité pozice, pak použitý distinct k odstranění duplikátů.

Můžete použít DENSE_RANK()

SELECT DISTINCT TXT, ENTRY_DATE
  FROM (SELECT txt,
               entry_date,
               DENSE_RANK () OVER (PARTITION BY txt ORDER BY entry_date DESC)
                  AS myRank
          FROM tmp_txt) Q1
 WHERE Q1.MYRANK < 3
ORDER BY txt, entry_date DESC

Vstup:

txt | entry_date

xyz | 03/11/2014
xyz | 25/11/2014
abc | 19/11/2014
abc | 04/11/2014
xyz | 20/11/2014
abc | 02/11/2014
abc | 28/11/2014
xyz | 25/11/2014
abc | 28/11/2014

Výsledek:

txt | entry_date

abc | 28/11/2014
abc | 19/11/2014
xyz | 25/11/2014
xyz | 20/11/2014



  1. Jak spustit java program na serveru?

  2. Konfigurace systému se nepodařilo inicializovat

  3. Postgresql regexp_replace

  4. Konfigurace Puma Cluster na Heroku