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

MySQLビュー:1つの計算フィールドを別の計算フィールドで(名前で)参照する

    ビューではサブクエリは許可されていないため、複数のビューを作成してサブクエリをシミュレートする必要があります。

    たとえば、このクエリを直接実行すると、問題が解決します。

    SELECT 
        TotalCircles + TotalSquares AS TotalShapes
    FROM
        (SELECT 
            BlueCirles + RedCircles AS TotalCircles,
            BlueSquares + RedSquares AS TotalSquares
        FROM
            (SELECT
                2 AS BlueCirles,
                3 AS RedCircles,
                4 AS BlueSquares,
                5 AS RedSquares
            ) AS shapes
        ) as totals;
    

    MySQLドキュメント によると ビューには、FROM句にサブクエリを含めることができないという制限があります。この制限を回避してこのクエリをビューに変換するには、3つのビュー(サブクエリごとに1つ)に分割し、最後にフィールドの目的の組み合わせを指定します。

    CREATE VIEW shapes AS
    SELECT
        2 AS BlueCirles,
        3 AS RedCircles,
        4 AS BlueSquares,
        5 AS RedSquares;
    
    CREATE VIEW totals AS
    SELECT 
        BlueCirles + RedCircles AS TotalCircles,
        BlueSquares + RedSquares AS TotalSquares
    FROM
        shapes;
    
    CREATE VIEW result AS
    SELECT 
        TotalCircles + TotalSquares AS TotalShapes
    FROM
        totals;
    
    SELECT * FROM result;
    


    1. MariaDBの日時値から秒を引く

    2. Oracleでフィールドの値が変更されたときに行番号をインクリメントする

    3. REGEXP MySQL関数を使用して2ドットを超える電子メールを見つける方法は?

    4. ウィンドウ関数の決定論的ソート順