按两列排序,为什么不先进行分组?

问题描述 投票:0回答:1

我有两列,一个是包含客户名称的字符串字段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

这绝对可以胜任。但我的困惑是因为我不关心名称的顺序,我应该能够先进行某种分组(这应该比排序便宜)并且只对数字字段进行排序。我能做到吗?为什么谷歌的很多例子只是在两个字段上使用排序?谢谢!

python sql pandas sorting group-by
1个回答
0
投票

以下是答案 -

当您想要根据整个组(例如销售总额)为每个组(在本例中为John和Amy)提取结论时,就会进行分组。它主要用于聚合函数,或者有时仅用于选择不同的记录。您上面写的是按名称和销售顺序对数据进行排序,根本没有涉及分组。由于操作是排序,显然为它编写的命令将是排序。

© www.soinside.com 2019 - 2024. All rights reserved.