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

postgresqlのwhere句の列エイリアスにアクセスします

    これがあなたのやり方です-列名のエイリアス

    select 
      -- etc etc 
      (select innerDLI.datetime_created from distribution_line_items innerDLI where innerDLI.item_number = distribution_line_items.item_number order by innerDLI.datetime_created asc limit 1) as Origination,
      -- etc etc
    from distribution_stop_information
      -- etc etc
    

    これをwhere、joinのエイリアスに配置する方法は次のとおりです

    select 
      -- etc etc 
      Origination.datetime_created
      -- etc etc
    from distribution_stop_information 
    left join distribution_line_items AS Origination ON Origination.item_number = distribution_line_items.item_number
    where Origination.datetime_created > to_date(?, 'YYYY-MM-DD') - interval '180 days'  
    -- etc etc
    

    これについてより良いことは何もありません 投稿したソリューションよりも(SQLオプティマイザーは同じプランになるはずです)、「where句でエイリアスを使用する」



    1. PostgreSQL関数パラメーターとしてのテーブル名

    2. ナンバーシリーズジェネレータチャレンジソリューション–パート4

    3. SQLで数値を丸める方法

    4. 複数の外部キーを使用してテーブルを作成し、混乱しないようにする方法