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

Postgresで計算列を句付きで実装する方法

    式を繰り返したくない場合は、派生テーブルを使用できます:

    select *
    from (
       select id, cos(id) + cos(id) as op 
       from myTable 
    ) as t 
    WHERE op > 1;
    

    これはパフォーマンスに影響を与えることはなく、SQL標準で必要とされる単なる構文糖衣です。

    または、上記を一般的なテーブル式に書き換えることもできます。

    with t as (
      select id, cos(id) + cos(id) as op 
      from myTable 
    )
    select *
    from t 
    where op > 1;
    

    どちらを好むかは、主に好みの問題です。 CTEは派生テーブルと同じ方法で最適化されるため、特に式cos(id) + cos(id)にインデックスがある場合は、最初のCTEの方が高速になる可能性があります。



    1. mysqlは、使用可能なタイムスロットとテーブルからビジーなタイムスロットを表示します

    2. C#からOracleに接続します

    3. MySQL .Net接続プールconnection.Open()が非常に遅い

    4. 日時を使用する場合のMySQLGROUPBYの日付