sql >> Databasteknik >  >> RDS >> PostgreSQL

välja en kolumn baserat på ett minimivärde för en annan kolumn

I standard SQL kan detta göras med en fönsterfunktion

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 har dock distinct on operatör som vanligtvis är snabbare än motsvarande lösning med en fönsterfunktion:

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

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



  1. Hur man får en rad-för-rad MySQL-resultatuppsättning i python

  2. Hur skapar jag en användare med samma privilegier som root i MySQL/MariaDB?

  3. Hur man återställer positionen för ett listobjekt i MySQL

  4. Hur man ställer in en timer i mysql