假設你使用至少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