首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按两列排序,为什么不先分组呢?

按两列排序,为什么不先分组呢?
EN

Stack Overflow用户
提问于 2018-01-03 02:09:36
回答 1查看 112关注 0票数 0

我有两列,一列是包含客户姓名的字符串字段customer,另一列是表示销售额的数字字段sales

我想要做的是按客户对数据进行分组,然后在组内对销售进行排序。

在SQL或Pandas中,这通常是通过表上的order by customer, sales实现的。但我只是对这个实现很好奇。与其先对customer排序,然后对sales排序,为什么不先对customer进行分组,然后对sales进行排序。我真的不关心不同客户的顺序,因为我只关心同一客户被分组在一起的记录。

分组本质上是映射,应该比排序运行得更快。

为什么在SQL中没有这样的实现?我是不是遗漏了什么?

示例数据name,sales john,1 Amy,1 john,2 Amy,3 Amy,4

我希望它按名称分组,然后按销售额排序:name,sales john,1 john,2 Amy,1 Amy,3 Amy,4

在SQL中,您可能会执行select * from table order by name,sales

这绝对可以完成这项工作。但我的困惑是,由于我不关心名称的顺序,我应该能够首先进行某种分组(这应该比排序更便宜),并且只对数值字段进行排序。我可以这样做吗?为什么google的许多例子只是简单地在这两个字段上使用排序?谢谢!

EN

回答 1

Stack Overflow用户

发布于 2018-01-03 13:34:36

这就是答案-

当您想要根据整个组得出结论时,分组就完成了,比如每个组(在本例中是John和艾米)的总销售额。它主要与聚合函数一起使用,有时仅用于选择不同的记录。您在上面写的是按名称和销售额的顺序对数据进行排序,根本不涉及分组。由于操作是排序,因此很明显,为它编写的命令将是排序。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48065753

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档