【发布时间】:2021-10-09 23:15:10
【问题描述】:
我有一个如下表,我想在其中对类别中的 PartNumber 组进行排名,同时保持 LineItem 顺序。
这是起始表 -->
| Category | Line Item | Part Number |
|---|---|---|
| Apple | 1 | Granny Smith |
| Apple | 2 | Granny Smith |
| Apple | 3 | Fuji |
| Apple | 4 | Fuji |
| Banana | 1 | Chiquita |
| Banana | 2 | Chiquita |
| Banana | 3 | Dole |
| Banana | 4 | Dole |
| Banana | 5 | Del Monto |
| Banana | 6 | Del Monto |
这是我的目标表 -->
| Category | Line Item | Part Number | Rank Order |
|---|---|---|---|
| Apple | 1 | Granny Smith | 1 |
| Apple | 2 | Granny Smith | 1 |
| Apple | 3 | Fuji | 2 |
| Apple | 4 | Fuji | 2 |
| Banana | 1 | Chiquita | 1 |
| Banana | 2 | Chiquita | 1 |
| Banana | 3 | Dole | 2 |
| Banana | 4 | Dole | 2 |
| Banana | 5 | Del Monto | 3 |
| Banana | 6 | Del Monto | 3 |
在这种情况下,需要保留订单项订单。我尝试使用 SQL 分区和排名,但它们是按零件编号而不是行项目排序的。
SELECT
Category,
LineItem,
PartNumber,
DENSE_RANK() OVER (PARTITION BY Category ORDER BY PartNumber ASC)
FROM TABLE
如果这不可能,Pandas 中是否有类似的选项会产生类似的结果?
【问题讨论】:
标签: python sql sql-server pandas