查询以获取学生姓名和学生人数不能使用此代码。请帮助某人

时间:2016-07-27 11:39:07

标签: mysql sql

SELECT student_name, COUNT(*)c
FROM  btl_english 
GROUP BY student_name 
HAVING count > 1

1054 - 'having clause'

中的未知列'count'

2 个答案:

答案 0 :(得分:2)

您无法在HAVING子句中使用别名。试试这个:

SELECT student_name, COUNT(*) c 
FROM  btl_english 
GROUP BY student_name 
HAVING COUNT(*) > 1

答案 1 :(得分:0)

这是逻辑查询处理 六个主要查询子句的顺序:

  
      
  1. FROM
  2.   
  3. WHERE
  4.   
  5. GROUP BY
  6.   
  7. HAVING
  8.   
  9. 选择
  10.   
  11. ORDER BY
  12.   

为你而言:

Below is the Logical query processing flow chart for each clause :Itzik Ben-Gan

enter image description here

仅在Select子句之后解析Having列表。在Have子句解析时,解析器没有选择列表。因此,您将收到以下错误

  

列名'c'无效。

表示解析器尝试在表中找到列c(而不是选择列表),这是找不到的。

这就是为什么你不能得到结果。

在您的案例中使用count(*)而不是别名