在 where 语句 sql 中使用计数
Use of count in where statement sql
我与 camera_id = 6
有 N
笔交易,我想对每笔 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
我与 camera_id = 6
有 N
笔交易,我想对每笔 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