我有一个memory[ 3 * BLOCKS + 2]
列的表memory[ seg * BLOCKS + block]
。
也有一个typedef int (*memseg_t)[BLOCKS];
memseg_t memory = (memseg_t)malloc(BLOCKS * input * sizeof(int));
列的memory[seg][block]
表
现在,每个凭证都与av
个用户相关(按时间戳排序),其中ID, amount
是特定凭证的users
值。
我做了一个dbfiddle并举了一个小例子
我的预期结果:
ID, timestamp
为了更好地理解:
管理员创建一个凭证,该凭证应送给注册的前X个用户。每个优惠券都有不同的X
答案 0 :(得分:2)
我想这就是你想要的:
with
u as (
select userID, timestampMock,
row_number() over (order by timestampMock) as rn
from users
)
select
av.voucherID, u.userID
from av
join u on u.rn <= av.amount
order by av.voucherID, u.userID
我在您的dbfiddle中对其进行了测试,其结果是:
voucherID userID
--------- ------
11 10
12 10
12 11