将GROUP BY与AVG函数一起使用 - 语法错误不正确

问题描述 投票:0回答:1
SELECT 
    AVG (CASE 
            WHEN ItemPrice LIKE '-%' 
               THEN NULL
            WHEN ItemPrice LIKE '0%' 
               THEN NULL
            ELSE CAST (ItemPrice AS FLOAT) 
         END)
GROUP BY 
    HHIncome 
FROM 
    Tacos 

SQL返回以下错误:

错误:关键字“FROM”附近的语法不正确。 SQLState:S0001 ErrorCode:156

有人可以解释为什么上面的陈述本身是不正确的,但是当嵌套在下面的陈述中时可以操作吗?

SELECT  
    HHIncome AS Income_Segment, 
    COUNT(Customer) AS number_of_customers, 
    AVG (CASE 
            WHEN ItemPrice LIKE '-%' THEN NULL
            WHEN ItemPrice LIKE '0%' THEN NULL
            ELSE CAST (ItemPrice AS FLOAT) 
         END) AS avg_item_price, 
    COUNT(DISTINCT(ReceiptIDDesc)) AS number_of_orders, 
    SUM(CAST(ItemPrice AS FLOAT)) AS total_spend
FROM
    Tacos 
GROUP BY 
    HHIncome;  
sql group-by syntax-error average
1个回答
1
投票

问题是GROUP BY和FROM子句的顺序。 GROUP BY需要在FROM [表名]之后。

© www.soinside.com 2019 - 2024. All rights reserved.