为啥我sql语句用group by老查出两条连续相同的记录?比如本来3条结果,会出现6条。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥我sql语句用group by老查出两条连续相同的记录?比如本来3条结果,会出现6条。相关的知识,希望对你有一定的参考价值。
你显示的数据重复,但是你多表关联的其他字段肯定有不重复的,如果你想看看就输出的时候打*,自己看一下,肯定有不重复的
如果重复部分是你要的结果,你可以用distinct去重你要的几个字段 参考技术A 几张表关联查询数据的?如果是,看关联字段的准确性。。
是不是缺少关联字段。 参考技术B 语句没有贴出来,别人怎么帮你回答。 参考技术C 多表查询的!你distinct之后看看
sql语句中的group by啥意思
参考技术A 分类汇总的时候用。groupby
:表示按字段分组。例如:分别计算男性用户和女性用户的平均年龄。select
性别,avg(年龄)
as
average
from
表名
group
by
性别 参考技术B 一、sql语句中的groupby是:GROUP
BY
语句用于结合合计函数,根据一个或多个列对结果集进行分组。
二、sql语句group
by的高级语法:
1、写上一个创建表的
sql语句.
当然,我们也可以用设计图创建;
2、select
*
from
student,我们输入一条查询语句,显示出我们刚刚插入的所有数据;
3、select
stuname,COUNT(*)
from
student
group
by
stuname。从上面的结果我们不难看出,我们根据学生姓名进行了分组,另一种说法其实就是把重复的过滤了,把学生表中的姓名那一列用group
by分组,并且利用聚合函数(count) 统计每个姓名出现的次数。
Sql语句中有很多技巧,一般除了我们初学时的增删改查,还有其他很多。安装的时候也一定要记得看一下自己的操作系统是多少位.你是32位操作系统的就安装32位的Sqlserver
版本不限制,2005、2012都可以。 参考技术C GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组。
举几个简单例子
成绩表(姓名,课程,成绩)
1、去重复,同distinct、查找有多少个人的记录(按姓名分组、排重)
2、取每个人有多少条记录(按姓名分组、统计)
3、取有成绩记录为2条的人(按姓名分组、配合having使用)
4、取每个人的总成绩(按姓名分组、合计)
5、取每个人的最高成绩(按姓名分组、取最大max/最小min/平均avg值)
以上是关于为啥我sql语句用group by老查出两条连续相同的记录?比如本来3条结果,会出现6条。的主要内容,如果未能解决你的问题,请参考以下文章
mysql又学一招,跟着DBA有肉吃 GROUP BY与MAX连用查出最大的id
group by后接的having语句怎样使用才是有效的,我为啥不行的