[英]Sort by two columns, why not do grouping first?
我有两个栏目,一个是字符串字段customer
包含客户姓名,另一种是数字领域sales
占销售收入。
我要做的是按客户对数据进行分组,然后按组对销售进行排序。
在SQL或Pandas中,通常是通过order by customer, sales
在桌子上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的许多示例仅在两个字段上使用排序? 谢谢!
这是它的答案-
当您要基于整个组得出结论时,就可以进行分组,例如每个组(在本例中为John和Amy)的销售总额。 它通常与聚合函数一起使用,有时仅用于选择不同的记录。 上面您写的是按照名称和销售顺序对数据进行排序,根本不涉及分组。 由于操作是排序的,因此很明显,为其编写的命令将是排序的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.