在使用 SQL 查询时,您可能会遇到错误消息“表达式 'cnt' 没有被分组”。这通常意味着您在 SELECT 语句中使用了聚合函数(如 COUNT()SUM()AVG() 等),但没有对包含该表达式的列进行分组。

例如,如果您执行以下查询:

SELECT COUNT(*) AS cnt, name FROM customers

您将收到此错误,因为您正在对 name 列进行计数,但没有对该列进行分组。为了解决此问题,您需要添加一个 GROUP BY 子句,将结果按 name 列进行分组:

SELECT COUNT(*) AS cnt, name FROM customers GROUP BY name

错误原因:

  • 您在 SELECT 语句中使用了聚合函数,但没有对包含该函数的列进行分组。
  • GROUP BY 子句必须包含所有未在聚合函数中使用的列。

解决方法:

  • 使用 GROUP BY 子句对包含聚合函数的列进行分组。
  • GROUP BY 子句中包含所有未在聚合函数中使用的列。

示例:

假设您要统计每个城市的用户数量,您可以使用以下查询:

SELECT city, COUNT(*) AS user_count FROM users GROUP BY city

在这个查询中,我们使用了 COUNT(*) 函数来统计每个城市的用户数量,并使用 GROUP BY city 子句对结果按城市进行分组。

通过以上方法,您可以解决“表达式 'cnt' 没有被分组”的错误,并正确地使用聚合函数进行统计分析。

SQL 错误:表达式 'cnt' 未分组

原文地址: https://www.cveoy.top/t/topic/ouaL 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录