2016-08-30 58 views
-1

我們正在嘗試創建一個用於測試目的的大容量樣本。 對數據進行特定看起來像這樣基於列的數據採樣

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在這裏。

+0

我刪除了不一致的數據庫標記。隨意爲您真正使用的數據庫添加標籤。 –

回答

0

這是當前客戶ID在唯一客戶ID的排序列表中的位置。要獲得排序列表中的位置,請計算有多少較小的值:

SELECT (SELECT COUNT(*) 
     FROM (SELECT DISTINCT CustomerID 
       FROM MyTable) AS UniqueIDs 
     WHERE UniqueIDs.CustomerID <= MyTable.CustomerID 
     ) AS GroupID, 
     * 
FROM MyTable; 
+0

即使在CustomerId中的數據未排序,它也能夠排序,同時提供排序的位置。或者在執行查詢之前,數據應在CustomerId列上排序 – shayantan

+0

對行進行計數時,這些行的順序無關緊要。 –

+0

如果我們對多列進行排序,查詢將如何看起來像 – shayantan