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

时间:2017-12-15 18:10:04

标签: sql group-by syntax-error average

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;  

1 个答案:

答案 0 :(得分:1)

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