首页
学习
活动
专区
圈层
工具
发布

SQL中Group By的使用详解!

我是你们的老朋友.小二!今天一起来看看SQL语句中的group by语法!...5、Group By中Select指定的字段限制示例3select 类别, sum(数量) as 数量之和, 摘要 from A group by 类别 order by 类别 desc示例3执行后会提示下错误...SQL Server中虽然支持“group by all”,但Microsoft SQL Server 的未来版本中将删除 GROUP BY ALL,避免在新的开发工作中使用 GROUP BY ALL。...Access中是不支持“Group By All”的,但Access中同样支持多列分组,上述SQL Server中的SQL在Access可以写成select 类别, 摘要, sum(数量) AS 数量之和...示例8select 类别, sum(数量) as 数量之和 from A group by 类别 having sum(数量) > 18示例9:Having和Where的联合使用方法select 类别,

6.7K31
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    SQL 避坑指南 - Oracle GROUP BY 整型常量的「薛定谔行为」

    最近 PawSQL 的 SQL 解析器撞上了一个诡异的异常情况。...下面这条 SQL,在 Oracle 客户端里跑得好好的,PawSQL 却在解析时直接报了个数组越界: SELECT category, count(1) FROM products GROUP BY...参数值 行为 FALSE 保持旧行为,GROUP BY 3 → 按常量分组(默认行为) TRUE GROUP BY中的正整数视为位置指示器,指代 SELECT 列表的第 N 列 ⚡ 这意味着同样的 SQL...Oracle 23c 用户记得检查 GROUP_BY_POSITION_ENABLED——改了这个参数,所有用到位置分组的 SQL 行为都会变。...PawSQL 的应对措施 PawSQL在解决了这个SQL解析异常之后,还内置了一条审核规则——避免GROUP BY选择列的序号——专门在 SQL 进入生产环境之前,自动识别 GROUP BY 中使用整型字面量

    8810

    解决SQL中的“Expression #1 of SELECT list is not in GROUP BY clause“错误

    默语博客:解决SQL中的"Expression #1 of SELECT list is not in GROUP BY clause"错误 ‍♂️ 大家好,默语:Java高级工程师、自媒体博主,北京城市开发者社区的主理人...错误的成因 在SQL查询中,GROUP BY子句用于将结果集按一个或多个列进行分组。...而SELECT列表中的每一列都必须是一个聚合函数或出现在GROUP BY子句中,否则SQL引擎无法确定如何对这些列进行分组,从而导致错误。 2....=only_full_group_by 2.2 错误分析 该错误发生的原因是id列没有在GROUP BY子句中进行分组,同时它也不是一个聚合函数,SQL引擎无法知道如何处理该列的数据。...希望通过本文的讲解,大家能够更好地理解和解决这一常见的SQL错误,提升自己的SQL技能。 未来展望 未来,我们将继续探讨更多SQL相关的技术问题和解决方案。

    3.7K10

    SQL优化的魅力!从 30248s 到 0.001s

    但是1s的时间还是太长了,还能进行优化吗,仔细看执行计划: 图片 查看优化后的sql: SELECT YSB.s.s_id AS s_id, YSB.s.name AS...方法如下(在命令窗口执行 ): 图片 图片 有type=all 按照我之前的想法,该sql的执行的顺序应该是先执行子查询 select s_id from SC sc where sc.c_id...) 耗时:0.001s 这样就是相当快了啊,Mysql竟然不是先执行里层的查询,而是将sql优化成了exists子句,并出现了EPENDENT SUBQUERY,mysql是先执行外层查询,再执行里层的查询...,如果先join,将会有70w条数据发送join,因此先执行where过滤是明智方案,现在为了排除mysql的查询优化,我自己写一条优化后的sql SELECT s.* FROM...where条件对表进行过滤,然后做表连接 (虽然mysql会对连表语句做优化) 建立合适的索引,必要时建立多列联合索引 学会分析sql执行计划,mysql会对sql进行优化,所以分析执行计划很重要

    46620

    SQL优化的魅力!从 30248s 到 0.001s

    但是1s的时间还是太长了,还能进行优化吗,仔细看执行计划: 查看优化后的sql: SELECT     `YSB`.`s`.`s_id` AS `s_id`,     `YSB`.`s`....=all 按照我之前的想法,该sql的执行的顺序应该是先执行子查询 select s_id from SC sc where sc.c_id = 0 and sc.score = 100 耗时:0.001s...那么再来执行下sql SELECT s.* from Student s INNER JOIN SC sc on sc.s_id = s.s_id where sc.c_id=0 and sc.score...先回顾下: show index from SC 执行sql SELECT s.* from Student s INNER JOIN SC sc on sc.s_id = s.s_id where...(虽然mysql会对连表语句做优化) 4.建立合适的索引,必要时建立多列联合索引 5.学会分析sql执行计划,mysql会对sql进行优化,所以分析执行计划很重要 基于 Spring Boot + MyBatis

    54320

    记一次神奇的sql查询经历,group by慢查询优化

    可以看到,group by字段上我是加了索引的,也用到了。 三、优化 说实话,我是不知道该怎么优化的,这玩意还能怎么优化啊!先说下,下面的思路都是没用的。...思路二: where条件太复杂,没索引,导致查询慢,但其实哪怕where条件不动,只要把group by去掉,就非常快。所以应该也不是where条件的问题。 ?...思路三: 既然group by慢,换distinct试试??(这里就是本篇博客里说的神奇的地方了) ? 卧槽???!!!这是什么情况,瞬间这么快了??!!!...虽然知道group by和distinct有很小的性能差距,但是真没想到,差距居然这么大!!!大发现啊!!...我当然是不信了,去测试电脑上执行sql,还真是30多秒。。。 我又回我的电脑上,连接同一个数据库,一执行sql,0.8秒!? 什么情况,同一个库,同一个sql,怎么在两台电脑执行的差距这么大!

    2.1K20

    SQL中Group By的使用,以及一些特殊使用方法

    5、Group By中Select指定的字段限制 示例3 select 类别, sum(数量) as 数量之和, 摘要 from A group by 类别 order by 类别 desc 示例3...SQL Server中虽然支持“group by all”,但Microsoft SQL Server 的未来版本中将删除 GROUP BY ALL,避免在新的开发工作中使用 GROUP BY ALL。...Access中是不支持“Group By All”的,但Access中同样支持多列分组,上述SQL Server中的SQL在Access可以写成 select 类别, 摘要, sum(数量) AS 数量之和...示例8 select 类别, sum(数量) as 数量之和 from A group by 类别 having sum(数量) > 18 示例9:Having和Where的联合使用方法 select...by的作用并不是很大,SQL Server支持compute和compute by,而Access并不支持 SQL compute by 的使用 https://www.cnblogs.com/Gavinzhao

    4K20

    记一次详细的的SQL查询经历,group by慢查询优化

    简单来说,就是查询一定条件下,都有哪些用户的。很简单的sql,可以看到,查询耗时为37秒。...可以看到,group by字段上是加了索引的,也用到了。...思路二: where条件太复杂,没索引,导致查询慢,但给where条件的所有字段加上了组合索引,没起作用。 ? ? 思路三: 既然group by慢,换distinct试试 ? 瞬间就加快了。...虽然知道group by和distinct有很小的性能差距,但是没想到,差距居然这么大。 四、你以为这就结束了吗 ---- 这个bug转给测试后,测试一测,居然还是30多秒。...再测试电脑上执行sql,依旧是30多秒。 又回本人的电脑上,连接同一个数据库,一执行sql,0.8秒。 同一个库,同一个sql,怎么在两台电脑执行的差距这么大。 后来直接在服务器上执行: ?

    2.4K10

    记一次神奇的SQL查询经历,group by慢查询优化

    简单来说,就是查询一定条件下,都有哪些用户的。很简单的sql,可以看到,查询耗时为37秒。...可以看到,group by字段上我是加了索引的,也用到了。 三、优化 说实话,我是不知道该怎么优化的,这玩意还能怎么优化啊!先说下,下面的思路都是没用的。...思路二: where条件太复杂,没索引,导致查询慢,但我给where条件的所有字段加上了组合索引,也还是没用 ? ? 思路三: 既然group by慢,换distinct试试??...(这里就是本篇博客里说的神奇的地方了) ? 卧槽???!!!这是什么情况,瞬间这么快了??!!! 虽然知道group by和distinct有很小的性能差距,但是真没想到,差距居然这么大!!!...我当然是不信了,去测试电脑上执行sql,还真是30多秒。。。 我又回我的电脑上,连接同一个数据库,一执行sql,0.8秒!? 什么情况,同一个库,同一个sql,怎么在两台电脑执行的差距这么大!

    1.6K20
    领券