sql >> Database teknologi >  >> RDS >> PostgreSQL

Hvordan tager jeg en DISTINCT ON-underforespørgsel, der er sorteret efter en separat kolonne, og gør den hurtig?

Jeg spekulerer på, om du kan få dette til at fungere:

select article_id, id, article_published_date
from prediction p
where p.prediction_date = (select max(p2.prediction_date)
                           from prediction p2
                           where p2.article_id = p.article_id
                          )
order by article_published_date desc;

Brug derefter disse to indekser:

  • (article_published_date desc, prediction_date, article_id, id)
  • (article_id, prediction_date desc) .


  1. JDBC-forbindelse til Oracle-database ved hjælp af TLS-certifikat

  2. str_replace i SQL OPDATERING?

  3. Sådan grupperes tid efter time eller med 10 minutter

  4. Ufølsom søgning i Oracle