Sql 基于列的数据采样
我们正试图从大量样品中制作一个样品,用于测试。 具体的数据如下所示Sql 基于列的数据采样,sql,Sql,我们正试图从大量样品中制作一个样品,用于测试。 具体的数据如下所示 CustomerId Customer_name PurchaseId Purchase date 1234 Robert Benson ABC123 12/07/2012 1218 Gary Thomas PP122 26/01/2013 1254 Robert Sharma PML563 27/04/2012 1218
CustomerId Customer_name PurchaseId Purchase date
1234 Robert Benson ABC123 12/07/2012
1218 Gary Thomas PP122 26/01/2013
1254 Robert Sharma PML563 27/04/2012
1218 Gary Thomas PR124 06/03/2013
1234 Benson Cruiso LML123 14/07/2012
1234 Martha Cruiso FMPL123 15/07/2012
我希望结果数据如下:
GroupID CustomerId Customer_name PurchaseId Purchase date
1 1218 Gary Thomas PR124 06/03/2013
1 1218 Gary Thomas PP122 26/01/2013
2 1234 Robert Benson ABC123 12/07/2012
2 1234 Benson Cruiso LML123 14/07/2012
2 1234 Martha Cruiso FMPL123 15/07/2012
3 1254 Robert Sharma PML563 27/04/2012
基本上,我希望有一个额外的一列,它将根据一列(即此处的CustomerId)标识一组的行。这是当前客户ID在唯一客户ID排序列表中的位置。要获取排序列表中的位置,请计算有多少较小的值:
SELECT (SELECT COUNT(*)
FROM (SELECT DISTINCT CustomerID
FROM MyTable) AS UniqueIDs
WHERE UniqueIDs.CustomerID <= MyTable.CustomerID
) AS GroupID,
*
FROM MyTable;
我删除了不一致的数据库标记。请随意为您真正使用的数据库添加标记。即使中的数据在CustomerId上未排序,它也能够在提供排序位置的同时对其进行排序。或者在执行查询之前,数据应该在CustomerId列上进行排序当计算行时,这些行的顺序并不重要。如果我们在多个列上进行相同的排序,查询会是什么样子?这将是一个不同的问题。