在 where 语句 sql 中使用计数

Use of count in where statement sql

我与 camera_id = 6N 笔交易,我想对每笔 N // 100 笔交易进行抽样。 我有以下查询:

SELECT t.id from (
    SELECT id, camera_id, start_ts, ROW_NUMBER() OVER (ORDER BY start_ts) AS rownum
    FROM transactions
    WHERE camera_id = 6  
) as t
where t.rownum % (N / 100) = 1
order by t.start_ts

我怎样才能改变它,这样我就不需要额外的查询来确定 N

未测试

以下是否对您有用 - 除了您的 Rownumber 之外还添加一个窗口计数并使用它:

SELECT t.id from (
    SELECT id, camera_id, start_ts, 
            Row_Number() OVER (ORDER BY start_ts) AS rownum,
            Count(*) over() Qty
    FROM transactions
    WHERE camera_id = 6  
) as t
where t.rownum % (Qty / 100) = 1
order by t.start_ts