sql >> Database >  >> RDS >> PostgreSQL

een kolom selecteren op basis van een minimumwaarde van een andere kolom

In standaard SQL kan dit met een vensterfunctie

select test_type, model, firmware_version, avg_throughput
from (
  select test_type, model, firmware_version, avg_throughput, 
         min(firmware_version) over (partition by test_type, model) as min_firmware
  from temp_table
) t
where firmware_version = min_firmware;

Postgres heeft echter de distinct on operator die meestal sneller is dan de overeenkomstige oplossing met een vensterfunctie:

select distinct on (test_type, model) 
       test_type, model, firmware_version, avg_throughput
from temp_table
order by test_type, model, firmware_version;

SQLFiddle-voorbeeld:http://sqlfiddle.com/#!15/563bd/1



  1. Datumtijd achter een uur na het inbrengen. Zomertijd

  2. Hoe vind ik de onderliggende kolom- en tabelnaam voor een Oracle-view?

  3. Informatie krijgen over alle soorten gegevens die in een bepaald pakket zijn gedeclareerd?

  4. NodeJS antwoordde dat de MySQL-tijdzone anders is als ik rechtstreeks uit MySQL haal