sql >> データベース >  >> RDS >> PostgreSQL

別の列の最小値に基づいて列を選択する

    標準SQLでは、これはウィンドウ関数を使用して実行できます

    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にはdistinct onがあります 通常、ウィンドウ関数を使用した対応するソリューションよりも高速な演算子:

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

    SQLFiddleの例: http://sqlfiddle.com/#!15/563bd/1 >



    1. CSVファイルをMySQLテーブルにインポートするにはどうすればよいですか?

    2. IRI WorkbenchでのInformix(IDS12 DB)への接続

    3. SQLServerでのテーブル変数のパフォーマンス

    4. SQL Server(T-SQL)で文字列を別の文字列に置き換える