按第二列分组排序

博比特

一直试图解决这个问题,但没有成功。

这是我的桌子

SN      PID
----    ---------
1       NULL
2       1000005
3       NULL
4       1000002
5       1000005
6       NULL
7       1000002
8       NULL
9       1000005

我需要按 SN 排序,但是当 PID 不为空时,它需要将它们组合在一起。因此,我正在寻找的结果是

SN      PID
----    ---------
1       NULL
2       1000005
5       1000005    -- group together with the previous SAME PID
9       1000005    -- continue to group together
3       NULL       -- continue to the next unused SN (no more PID = 1000005)
4       1000002
7       1000002    -- group together with the previous SAME PID
6       NULL       -- continue to the next unused SN
8       NULL

欣赏任何人的建议。谢谢!

标签Alleman

我将通过使用一个人工列进行排序来解决这个问题,该列等于SN所有具有相同MINPID或等于SNwhenPID为 null的行的 MIN

SELECT *,
 CASE 
   WHEN PID IS NULL THEN SN
   ELSE (SELECT MIN(t2.SN) FROM MyTable t2 WHERE t2.PID=t1.PID)
 END AS sortby
FROM MyTable t1
ORDER BY sortby, SN

如果您需要sortby在输出中排除,您可以将上述内容用作 CTE,或者您可以将 CASE 表达式直接插入 ORDER BY 并将其排除在 SELECT 列表之外。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

排序多列,第二列按数字顺序排序

按两列排序,第二列未索引

PySpark-按第二列对RDD进行排序

按熊猫系列中的第二列排序

按第二列分组的一列的总和基于第三列进行分组

如何创建按第二个元素排序和分组的成对列表的列表?

按第二列和第一列对二维数组进行排序

使用插入排序C#按第二列对锯齿状数组进行排序

PowerShell按第二索引排序

按第二字段排序

熊猫按第一列分组,并从第二列添加逗号分隔的条目

熊猫:按两列分组,并计算第二列所有值的出现

按第一列分组,第二列的结果作为xml

SQL:仅选择第二列最常使用的值为某些值的ID(按ID分组)

如何加入按第二列中的值分组的多个单元格

在单独的列中返回最大和第二大日期,按某个因素分组

按第一列然后第二列对arraylist排序

按第一列然后第二列对文件进行排序

包含第二列中元素乘积的列,按组排序

如何在外壳脚本中按字母顺序对第二列进行排序,然后按数字排序?

按python中的第一(或第二,否则)列对文件排序

根据第二列按数字和第一字母顺序排序

使用Python中的第二列按字母顺序对文本文件进行排序

如何在保留配对的同时按第二列对R double排序?

按日期排序并使用Pandas数据框从第二列中提取唯一值

按第一列对2d数组进行排序,然后对第二列进行排序

使用第二列的变化百分比在列中填充空值,同时按第三列分组

Python / Pandas-如何按两列分组并用第二列中第三列的值对行进行计数

按第一列分组并将第二列转换为列名,第三列作为其值