社区
MS-SQL Server
帖子详情
Group by 后面的字段多少是否影响SQL语句的效率?
zengjd
2009-04-29 09:40:54
Group by 后面的字段个数是否影响SQL语句的效率?
是不是越多越慢?
...全文
2046
19
打赏
收藏
Group by 后面的字段多少是否影响SQL语句的效率?
Group by 后面的字段个数是否影响SQL语句的效率? 是不是越多越慢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
19 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
LIHY70
2009-04-29
打赏
举报
回复
听听~
zengjd
2009-04-29
打赏
举报
回复
[Quote=引用 17 楼 jinjazz 的回复:]
我的理解是全表扫描不管group by 几个字段应该都是差不多的,而且不大有优化的余地。如果他在执行计划中所占比例越大,说明这个查询的效率越好。
[/Quote]
你这个理解和大部分人的理解都不一样,可以不可以详细讲讲你?
jinjazz
2009-04-29
打赏
举报
回复
我的理解是全表扫描不管group by 几个字段应该都是差不多的,而且不大有优化的余地。如果他在执行计划中所占比例越大,说明这个查询的效率越好。
zengjd
2009-04-29
打赏
举报
回复
[Quote=引用 15 楼 jinjazz 的回复:]
具体情况具体分析嘛,最起码的一点,group by越多,返回的数据量也越大。对聚合计算、排序计算已经传输的压力都会增大,进而整个查询计划中的全表扫描的所占比例就会减小。而group by 一个字段的情况下,基本上除了聚合计算就是全表扫描。
[/Quote]
没太看懂你啥意思啊
能不能那个稍微解释一下?
jinjazz
2009-04-29
打赏
举报
回复
具体情况具体分析嘛,最起码的一点,group by越多,返回的数据量也越大。对聚合计算、排序计算已经传输的压力都会增大,进而整个查询计划中的全表扫描的所占比例就会减小。而group by 一个字段的情况下,基本上除了聚合计算就是全表扫描。
Yang_
2009-04-29
打赏
举报
回复
[Quote=引用 13 楼 zengjd 的回复:]
如果Group by后面的字段不是来自同一个表,而是多个多个表的字段
是不是效率更严重?
这个时候,估计索引也没有用了吧!
[/Quote]
索引可能有用,要看具体执行计划
zengjd
2009-04-29
打赏
举报
回复
如果Group by后面的字段不是来自同一个表,而是多个多个表的字段
是不是效率更严重?
这个时候,估计索引也没有用了吧!
-狙击手-
2009-04-29
打赏
举报
回复
不一定,
要看数据分布、密度及索引情况
Garnett_KG
2009-04-29
打赏
举报
回复
在没有索引的情况下,
GROUP BY 后面的字段越多,会增加Sort的复杂度,所以要增加更多的CPU时间,所以会慢些,至於说明不明显,
这要看环境了。
jinjazz
2009-04-29
打赏
举报
回复
[Quote=引用 7 楼 zengjd 的回复:]
我同事说不会。
没法说服他。
[/Quote]
看执行计划
lg3605119
2009-04-29
打赏
举报
回复
应该会 建议在分组列上建立索引
ks_reny
2009-04-29
打赏
举报
回复
[Quote=引用 1 楼 ChinaJiaBing 的回复:]
SQL code
理论会...
[/Quote]
實際也會降低效率的.
zengjd
2009-04-29
打赏
举报
回复
我同事说不会。
没法说服他。
jinjazz
2009-04-29
打赏
举报
回复
聚集索引可以优化聚合函数,具体的sql效率你可以通过执行计划来观察
Yang_
2009-04-29
打赏
举报
回复
虽然不是线形的,越多应该越慢
有时影响不是很大,要看数据(按group by 后字段重复的情况)
jinjazz
2009-04-29
打赏
举报
回复
嗯
让你望见影子的墙
2009-04-29
打赏
举报
回复
和你表中的索引有关系
lgx0914
2009-04-29
打赏
举报
回复
会,而且有非常大的影响
ChinaJiaBing
2009-04-29
打赏
举报
回复
理论会...
SQL Server数据库基础到精通课程
本课程是陈表达在学习SQL server数据库后做的完整笔记,本课程讲解从最开始的 创建数据库、创建数据表、已经数据的写入、查询、修改更新、删除,
字段
运算、
字段
运算统计、分类汇总、数据分析、条件判断,条件筛选及一些常用的SQL数据库语句,变量定义,
字段
约束、等等,Select 、Where、Top、
Group
By 、Order By,Distinct、Declare等,详细可看图片和课程,本课程带有完整的SQL数据库课程课件,代码有注释解析等等,学习起来简单易懂,易上手直接操作,需要做数据分析,数据统计等工作的朋友们就赶紧学起来了,加油!
SQL语句
之分组查询--
GROUP
BY(
group
by)
sql语句
select之分组查询(
group
by) 分组查询 语法: select 分组函数,列(要求出现在
group
by的
后面
) from 表 where 筛选条件
group
by 分组的列表 order by 子句 注意:查询列表比较特殊,要求是分组函数和
group
by后的
字段
相同 特点:分组查询中的筛选条件分为两类: 分组前筛选: 数据源是原始表,用where,放在
group
by前面,因为在分组前筛选 分组后筛选:数据源是分组后的结果集 ,用having,放在
group
by,因为在分组后进
SQL之
group
by连接2个以上
字段
2.顺序:where----
group
by-----order by------having。3. select
后面
的所有列中,没有使用聚合函数的列,必须出现在
group
by
后面
。一个
字段
就依据一个条件分组,两个
字段
就依据两个条件分组。在 SQL 中,timestamp 是这张表的主键.1.select后接
group
by
后面
的
字段
。查询合作过至少三次的演员和导演的 id 对。:1050合作过至少三次的演员和导演。不满足另外分为1组。
SQL中
GROUP
BY语句介绍
本文主要介绍 SQL(Structured Query Language)中
GROUP
BY 语句的相关知识,同时通过用法示例介绍
GROUP
BY 语句的常见用法。 1 概述
GROUP
BY 语句通常用于配合聚合函数(如 COUNT()、MAX() 等),根据一个或多个列对结果集进行分组。 从字面上来理解,
GROUP
表示分组、BY 后接
字段
名,表示根据某个
字段
进行分组。 一般情况下,
GROUP
BY 必须要配合聚合函数一起使用,通过使用聚合函数,在分组之后可以对组内结果进行计数(COUNT)
SQL语句
之
GROUP
BY用法详解
大家都知道
group
by在
sql语句
中代表按照某个
字段
分组,但原理和用法在网上不容易查得到。 下面我用一句话简介的来说明: 如果select 中出现了非聚合函数的
字段
,那么所有
字段
都要在
group
by
后面
出现,然而
group
by
后面
的分组
字段
可以不用在select中出现。 原因:因为每一次的select中的聚合函数执行一次都要让整个的
sql语句
计算出结果,所以
group
by中一定要出现...
MS-SQL Server
34,576
社区成员
254,587
社区内容
发帖
与我相关
我的任务
MS-SQL Server
MS-SQL Server相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章