Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Können wir diese MySQL-Abfrage weiter vereinfachen?

Der Spaltenalias kann nicht in derselben SELECT-Anweisung verwendet werden, aber wenn Sie die Berechnungen nicht neu schreiben möchten, können Sie eine Unterabfrage verwenden:

select DATE,block_no, KS, KB, V1,
    (KS+KB)/V1 AS "New Rate"
from
(
    SELECT DATE,block_no, 
    SUM(IF(entity='KS',READING,0)) AS KS,
    SUM(IF(entity='KB',READING,0)) AS KB,
    SUM(IF(entity='V1',READING,0)) AS V1
    FROM dbf_sdl
    GROUP BY DATE,block_no
) d