使用GROUP BY子句时报错的原因和解决方法是什么?

哎呀,我已经习惯了。
前年,我正在家里楼下的一家小餐馆做数据库,帮老板统计每个菜品的月销售额,结果卡住了。
你说的情况当时就发生在我身上。

当时,我正在写SQL,想按菜品分组,统计哪些菜品销量最高。
我写的内容是这样的: sql 选择菜名、每月销量 从销售记录 按菜名分组;
你猜怎么着?直接报错,说“月销量”这一列没有指定聚合函数。
我当时很困惑。
我显然想按名称对菜肴进行分组,但需要添加销售额或计算最大和最小的。
然后,我立即更改它并添加了 SUM 函数: sql 选择菜名,SUM(每月销售额) 从销售记录 按菜肴名称分组;
这是正确的。

后来又遇到了,在公司的旧服务器上,数据库是MySQL 5 .7 当时我写了一个复杂的查询来过滤特定的客户,但结果又出错了。
我尝试了你提到的场景: sql 选择客户 ID、客户名称 FROM 订单记录 按客户 ID 分组 HAVING customer name = '张三';
这东西在MySQL 5 .7 上直接崩溃。
然后,我必须更好地学习并将其转换为聚合函数: sql SELECT 客户 ID, MAX(客户名称) FROM 订单记录 按客户 ID 分组 HAVING MAX(客户名) = '张三';
这次终于通过了。
我们来谈谈这个数据库。
有时会很沮丧,你必须一点一点地尝试。

Word中SQL语句复制出来执行报错

结论:当Word复制SQL错误时,很可能是特殊字符和分隔符的问题。
原因: 1 .以Word格式复制时,空格变成圆圈等扭曲的字符。
2 . Word中包含不可见字符,例如制表符和换行符。
3 、Word编辑中使用分隔符,但目标环境不支持。

解决方案: 1 、打开Word显示/隐藏编辑标记并手动删除乱码。
2 .复制到常规文本编辑器,例如记事本,然后复制到数据库执行。
3 . 如果使用标点符号,请先将其删除,并用分号分隔多个句子。
4 . 使用数据库工具导入SQL脚本文件,避免手动粘贴问题。

说实话:是格式问题,改成纯文本执行即可。