根据客户区分交易,给定销售额 table (customer_id, article_id)
Differentiate transactions by customer, given sales table (customer_id, article_id)
这很难解释,但我会尽力而为。
有一个 sales table,客户购买的每件商品都有一行(已简化)。因此,例如,如果一位顾客去商店买了 3 件东西,然后另一位顾客买了 2 件东西,那么销售额 table 将如下所示:
ID | CUSTOMER_ID | ARTICLE_ID
1 21 42
2 21 32
3 21 34
4 22 42
5 22 33
问题是我需要添加两个新列。
TRX_ID(transaction_id): 顾客到店买东西走人
TRX_COR(transaction_correlative): 文章在交易中的位置
结果应该是这样的:
ID | CUSTOMER_ID | ARTICLE_ID | TRX_ID | TRX_COR
1 21 42 1 1
2 21 32 1 2
3 21 34 1 3
4 22 42 2 1
5 22 33 2 2
根据这些信息,我可能知道实际有多少笔交易(在本例中为 2 个),哪个是第一个出售的商品,或通过付款台(在本例中为 42 个)等等。
注意事项:
我也存储了当天(但不是交易的确切时间)
每天有很多顾客
一个客户可以在白天return,这是一个全新的交易。
没办法两个客户同时购买
类似下面的东西,它使用 window aggregates,(我认为)应该按照您请求的方式计算 ID。
SELECT ID, Customer_ID, Article_ID,
DENSE_RANK() OVER (ORDER BY Customer_ID, Gr) AS TRX_ID,
ROW_NUMBER() OVER (PARTITION BY Customer_ID, Gr ORDER BY ID) AS TRX_COR
FROM (
SELECT *,
ROW_NUMBER() OVER (ORDER BY ID)-ROW_NUMBER() OVER (ORDER BY Customer_ID, ID) AS Gr
FROM [Test].[dbo].[Netezza]
) data
在内部查询中,行号减去 row-number-by-customer-than-id 以得出每个客户每个交易的分组号。外部查询然后使用此值分配事务 ID(通过 DENSE_RANK()) and transaction correlative (via ROW_NUMBER())
这很难解释,但我会尽力而为。
有一个 sales table,客户购买的每件商品都有一行(已简化)。因此,例如,如果一位顾客去商店买了 3 件东西,然后另一位顾客买了 2 件东西,那么销售额 table 将如下所示:
ID | CUSTOMER_ID | ARTICLE_ID
1 21 42
2 21 32
3 21 34
4 22 42
5 22 33
问题是我需要添加两个新列。
TRX_ID(transaction_id): 顾客到店买东西走人
TRX_COR(transaction_correlative): 文章在交易中的位置
结果应该是这样的:
ID | CUSTOMER_ID | ARTICLE_ID | TRX_ID | TRX_COR
1 21 42 1 1
2 21 32 1 2
3 21 34 1 3
4 22 42 2 1
5 22 33 2 2
根据这些信息,我可能知道实际有多少笔交易(在本例中为 2 个),哪个是第一个出售的商品,或通过付款台(在本例中为 42 个)等等。
注意事项:
我也存储了当天(但不是交易的确切时间)
每天有很多顾客
一个客户可以在白天return,这是一个全新的交易。
没办法两个客户同时购买
类似下面的东西,它使用 window aggregates,(我认为)应该按照您请求的方式计算 ID。
SELECT ID, Customer_ID, Article_ID,
DENSE_RANK() OVER (ORDER BY Customer_ID, Gr) AS TRX_ID,
ROW_NUMBER() OVER (PARTITION BY Customer_ID, Gr ORDER BY ID) AS TRX_COR
FROM (
SELECT *,
ROW_NUMBER() OVER (ORDER BY ID)-ROW_NUMBER() OVER (ORDER BY Customer_ID, ID) AS Gr
FROM [Test].[dbo].[Netezza]
) data
在内部查询中,行号减去 row-number-by-customer-than-id 以得出每个客户每个交易的分组号。外部查询然后使用此值分配事务 ID(通过 DENSE_RANK()) and transaction correlative (via ROW_NUMBER())