PRICE、SUBTYPE などを含むデータ セットがあります。データセットを使用する前に、外れ値を除去したいと考えています。各 SUBTYPE で、価格がとてつもなく高いまたは低いものの行を削除したいと考えています。
各 SUBTYPE について、PRICE の範囲を調べて、行を削除または除外します。PRICErange * .01 |KEEP| の間にある行を保持します。価格範囲 * .99
これは、stackoverflow で Martin Smith から提供されたもので、この質問を編集したので、ここから始めましょう。
;WITH CTE
AS (SELECT *,
ROW_NUMBER() OVER (PARTITION BY SUBTYPE ORDER BY PRICE) AS RN,
COUNT(*) OVER(PARTITION BY SUBTYPE) AS Cnt
FROM all_resale)
SELECT *
FROM CTE
WHERE (CASE WHEN Cnt > 1 THEN 100.0 * (RN -1)/(Cnt -1) END) BETWEEN 1 AND 99
これが私がしなければならないことかどうかわかりません。端からいくつの行が削除されるかわかりません。