繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM