ORDER BY Alias not working

后端 未结 6 1670
执笔经年
执笔经年 2020-12-06 13:39

UPDATING QUESTION:

ERROR:  column \"Fruits\" does not exist

Running Postgres 7.4(Yeah we are upgrading)

Why can\'t I ORDER BY the

6条回答
  •  天命终不由人
    2020-12-06 14:14

    You could try something like this ... untested, but I've seen similar queries.
    Let me know if it works...

    SELECT "Fruits",
        SUM(CASE WHEN r.order_date 
            BETWEEN DATE_TRUNC('DAY', LOCALTIMESTAMP) AND DATE_TRUNC('DAY', LOCALTIMESTAMP) + INTERVAL '1 DAY' 
            THEN 1 ELSE 0 END) AS daily, 
        SUM(CASE WHEN r.order_date 
            BETWEEN DATE_TRUNC('MONTH', LOCALTIMESTAMP) AND DATE_TRUNC('MONTH', LOCALTIMESTAMP) + INTERVAL '1 MONTH' 
            THEN 1 ELSE 0 END) AS monthly, 
        SUM(CASE WHEN r.order_date 
            BETWEEN DATE_TRUNC('YEAR', LOCALTIMESTAMP) AND DATE_TRUNC('YEAR', LOCALTIMESTAMP) + INTERVAL '1 YEAR' 
            THEN 1 ELSE 0 END) AS yearly, 
        SUM(CASE WHEN r.order_date >= '01-01-2011 00:00:00' THEN 1 ELSE 0 END) AS lifetime 
    FROM reports AS r
        ,(SELECT "ID",
                 CASE
                    WHEN tof."TypeOfFruits" = 'A' THEN 'Apple' 
                    WHEN tof."TypeOfFruits" = 'P' THEN 'Pear' 
                    WHEN tof."TypeOfFruits" = 'G' THEN 'Grapes' 
                    ELSE 'Other'
                 END AS "Fruits" FROM "TypeOfFruits" ) AS "tof"
    WHERE r.id = tof."ID" 
    GROUP BY "Fruits"
    ORDER BY CASE 
        WHEN "Fruits" = 'Apple' THEN 1 
        WHEN "Fruits" = 'Pear' THEN 2 
        WHEN "Fruits" = 'Grapes' THEN 3 
        ELSE 4 
    END
    

提交回复
热议问题