【问题标题】:Syntax error (operator missing) in query-expression?查询表达式中的语法错误(缺少运算符)?
【发布时间】:2012-11-14 20:25:49
【问题描述】:

我试图理解 COUNT(*),因此我创建了一个测试查询:

 SELECT COUNT(*)
 WHERE COUNT(UITLENINGEN.LLNR) >= 30;

当我点击执行时,我收到以下错误:

查询表达式 COUNT(*) WHERE COUNT(UITLENINGEN.LLNR) >= 30 中的语法错误(缺少运算符)。

我做错了什么?

【问题讨论】:

  • 表名在哪里?
  • 表名是UITLENINGEN,我把它放在了COUNT括号之间。
  • 从 UITLENINGEN 选择 COUNT(*) WHERE COUNT(UITLENINGEN.LLNR) >= 30;

标签: ms-access


【解决方案1】:

试试这个

SELECT COUNT(*) FROM UITLENINGEN GROUP BY LLNR HAVING COUNT(UITLENINGEN.LLNR) >= 30;

【讨论】:

  • 我收到以下错误(翻译自荷兰语):您不能在 WHERE 组件中使用统计函数 (COUNT(UITLENINGEN.LLNR) >= 30)。我应该尝试 HAVING 吗?
  • 从 UITLENINGEN 中选择 count(*),count(UITLENINGEN.LLNR) >= 30;
【解决方案2】:

我不明白你想做什么。下面的查询基于一个包含名为category_id 的字段的表。它使用GROUP BY category_id 来计算每个此类组中的行数。 HAVING 子句将结果集限制为仅计数至少为 30 的组。

SELECT category_id, COUNT(*)
FROM YourTable
GROUP BY category_id
HAVING COUNT(*) >= 30;

如果这与您想要完成的事情不同,请向我们提供更详细的信息,以便我们更好地了解您的情况。一组简短的样本数据,以及基于该样本的您想要的输出,将大有帮助。

【讨论】:

    【解决方案3】:

    您尚未指定应从中检索数据的表。试试下面的

     SELECT COUNT(*) from tableName
        WHERE COUNT(UITLENINGEN.LLNR) >= 30;
    

    【讨论】:

      【解决方案4】:

      将您的表名添加到查询中。

      SELECT COUNT(*) FROM UITLENINGEN WHERE COUNT(UITLENINGEN.LLNR) >= 30;
      

      【讨论】:

      • 我收到以下错误(翻译自荷兰语):您不能在 WHERE 组件中使用统计函数 (COUNT(UITLENINGEN.LLNR) >= 30)。我应该尝试 HAVING 吗?
      • @Tanno 你到底想做什么?
      【解决方案5】:

      请在需要聚合函数的地方添加表名并使用having 语句。例如:

      select count(*) 
      from UITLENINGEN
      having count(UITLENINGEN.LLNR) >= 30;
      

      【讨论】:

        猜你喜欢
        • 2020-01-14
        • 1970-01-01
        • 2018-09-02
        • 2018-01-29
        相关资源
        最近更新 更多