假设你使用至少SQL2005,你可以做somesting像
WITH p as (
SELECT a, b,
row_number() OVER(ORDER BY time_column) as row_no,
count() OVER() as total_count
FROM myTable
WHERE <date is in range>
)
SELECT a, b
FROM p
WHERE row_no % (total_cnt/10) = 1
的地方在底部状态的记录由分割总数计算行数的模所需的最终记录数量。 WHERE子句与%
更换使用
WITH p as (
SELECT a, b,
row_number() OVER(ORDER BY time_column) as row_no,
count() OVER() as total_count
FROM myTable
WHERE <date is in range>
),
a as (
SELECT a, b, row_no, total_count,
avg(a) OVER(partition by row_no/(total_cnt/10)) as avg_a
FROM p
)
SELECT a, b, avg_a
FROM a
WHERE row_no % (total_cnt/10) = 1
的公式选择在最后的一个值:
如果你想使用的平均水平,而不是一个特定的值,你可以按如下方式扩展该在分区by子句中由/
表示。
您是否考虑过平均而不是采样?您可以通过点选来获得非常棘手的结果。想想通过重新采样(光滑)制作的缩略图图像与通过丢弃点(颗粒感)制作的缩略图图像。 – ErikE 2010-08-28 01:21:29