此人很懒,什么也没有留下

发帖数 130粉丝 0
  • 解答问题超厉害

    经常帮助其他会员答疑
小白福在加油青铜一
2024-5-30 18:03:18 发布在问答
【数据处理】 sql
2024前面代码可以运行,最后一行去重的时候报错,是我语法错误了吗,我想最后去重怎么去重
2158
8
精彩评论8
阿姆斯特朗炮钻石一
发表于 2024-5-31 08:13:57 显示全部楼层
我就纳闷了,我把sql给你写出来了,美滋滋也给你写了一遍sql了,咋就是不用呢,你这个sql肯定是错的啊,你的Group by中只根据了一个字段分组了,你的输出只能数组分组的字段啊,其他字段你起码汇总一下输出吧
回复

使用道具 2#

阿姆斯特朗炮钻石一
发表于 2024-5-31 08:15:20 显示全部楼层
你Group by了什么字段,select后面只能有什么字段,想添加其他字段,得加聚合函数,sum(列),min(列),max(列)之类的
回复

使用道具 3#

yhdata_2aA4rwOK白银一
发表于 2024-5-31 08:45:17 显示全部楼层
SQL脚本写的不对,前边没用聚合函数,后边为什么要用group by呢
回复

使用道具 4#

39532铂金三
发表于 2024-5-31 09:14:23 显示全部楼层
不用group by ,用distinct
回复

使用道具 5#

美滋滋白银三
发表于 2024-5-31 09:16:30 显示全部楼层
我觉得楼主可能没有理解group by 的实际用处。
group by 首先是分组的功能。其次才会有去重的效果,
但是GROUP BY 的去重是因为分组而达到的去重效果。
一般使用GROUP BY 都是为了取的某些聚合统计数据而用的,并非主要用来去重的。
比如我有一份学校每个年级各个班级的考试成绩表,我想知道每个班得分总分,
那么我会SELECT 班级,SUM(分数) from 成绩表  group by 班级
通过上面的查询,我会用班级来分组,主要目的是为了得到分组后每个班级的分数求和(sum(分数))。
一般情况下,去重是用 distinct 这个关键字来完成去重的效果,这种去重是针对你搜索的所有项目去除完全一样的数据。
比如 select distinct 班级 from 成绩表 。 这条查询语句,我就可以得到参与了考试的所有班级一览。如果不加distinct 这个关机字,那么每个班级的分数会是有多条,因为成绩表中记录着每个班级每个人员的成绩。
不知道楼主明白了没有。
首先要搞清楚,你想怎么去重。
回复

使用道具 6#

yhdata_yzm
发表于 2024-5-31 09:49:04 显示全部楼层
在SQL查询中,GROUP BY子句通常用于将查询结果按一个或多个列进行分组,并对每个组应用聚合函数(例如,COUNT、SUM、AVG等)。在你的查询中,如果没有聚合函数的情况下使用GROUP BY,会导致SQL语法错误,因为没有明确的聚合逻辑。
回复

使用道具 7#

小白福在加油青铜一
发表于 2024-5-31 10:10:00 显示全部楼层
统一回复:谢谢大家的批评,我在多了解一下group by
回复

使用道具 8#

给给铂金四
发表于 2024-5-31 15:16:34 显示全部楼层
小白福在加油 发表于 2024-5-31 10:10
统一回复:谢谢大家的批评,我在多了解一下group by

小白福在加油
回复

使用道具 9#

高级模式
您需要登录后才可以回帖 登录 | 免费注册

  • 官方微信

    欢迎关注永洪服务号!收费为0,价值无限

    扫码关注
  • 新浪微博

    让每位用户轻松挖掘数据价值!

    访问新浪微博
  • 智能客服
1500W

用户等你来哦

Copyright   ©2012-2025  北京永洪商智科技有限公司  (京ICP备12050607) 京公网安备110110802011451号 |《永洪社区协议》
返回顶部