1

假设我有一个名为 customer_order 的表:

id|    cust#|    counter 
 1    1        1
 2    2        1 
 3    1        2 
 4    3        1
 5    2        2
 6    1        3 

所以想法是,每次客户 (cust#) 重复时,您都希望增加计数器,如上所示。我需要在查询数据时在 SELECT 语句中执行此操作。我正在使用 Pentaho 水壶从数据库中查询数据。我怎样才能做到这一点?

谢谢你。

4

1 回答 1

1

您可以使用纯 sql 执行此操作:

update customer c
    set counter = (select count(*) from customer c2 where c2.cust# = c.cust# and c2.id <= c.id);

如果您对customer(cust#, id).

您也可以使用变量来执行此操作,如果您有超过几万行,这可能更实用。

编辑:

埋在深处,我看到了I want to do this in a select。哎呀。这是select版本:

select c.*,
       (select count(*) from customer c2 where c2.cust# = c.cust# and c2.id <= c.id) as counter
from customer c
于 2013-09-12T15:15:54.907 回答