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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将GROUP BY与AVG函数一起使用 - 语法错误不正确相关的知识,希望对你有一定的参考价值。

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;  
答案

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

以上是关于将GROUP BY与AVG函数一起使用 - 语法错误不正确的主要内容,如果未能解决你的问题,请参考以下文章

15group by子句与聚合函数

group by 语句

【MySQL】分组查询(GROUP BY)

GROUP BY子句

GROUP BY子句

将GROUP BY / CASE与WHEN或IF一起使用