sql - GROUP BY 是否以任何方式暗示记录的顺序?
问题描述
考虑以下代码:
SELECT s, COUNT(*)
FROM p
GROUP BY s;
我是否应该期望记录相对于 s 进行排序?根据我的经验,在 Access 2007 中,命令似乎意味着命令。
解决方案
在使用 SQL 时,您永远不应该做出这样的假设。最好添加一个明确的ORDER BY
:
order by s
这是因为 SQL(语言)不保证没有ORDER BY
.
也就是说,MS Access 将按顺序返回结果,因为我认为它只有一种计算算法ORDER BY
——对列表进行排序。
但是,肯定还有其他算法。例如,SQL Server 具有基于散列的算法和并行算法。
因此,您不妨学习如何编写正确的查询。
推荐阅读
- android-studio - Android Studio:我想在我的工具栏上仅在特定活动/片段上创建一个过滤器图标,使用回收视图
- java - 如何离线安装 Java JDK?
- python - 获取所有链接的文本
- hyperledger-fabric - 如何并行执行链代码?
- c++ - 模板模板函数定义
- ansible - Ansible:如何创建用户并ansible成为该用户
- javascript - 如何构建一个快速应用程序以在 Raspberry Pi3 上运行灯条
- python - 在嵌套列表中提取 HIVE 表的数据
- docker - Docker/Kubernetes - 如何在容器之间共享 dns 名称?
- jquery - 重置我在手风琴中的搜索 - JQuery