sql >> Databáze >  >> RDS >> Sqlserver

SQL Server:jak vybrat pevný počet řádků (vyberte každou x-tou hodnotu)

V podstatě vše, co musíte udělat, abyste vybrali x-tou hodnotu, je zachovat všechny řádky, kde modul čísla řádku děleno x je 0.

WHERE rn % @x_thValues = 0

Nyní budete moci používat své ROW_NUMBER 's výsledkem, budete muset celý příkaz zabalit do podvýběru

SELECT  *
FROM    (
            SELECT  *
                    , rn = ROW_NUMBER() OVER (ORDER BY Value)
            FROM    DummyData
        ) d
WHERE   rn % @x_thValues = 0                    

V kombinaci s proměnnou na to, jaké x-té hodnoty potřebujete, můžete použít něco jako tento testscript

DECLARE @x_thValues INTEGER = 2

;WITH DummyData AS (SELECT * FROM (VALUES (1), (2), (3), (4)) v (Value))
SELECT  *
FROM    (
            SELECT  *
                    , rn = ROW_NUMBER() OVER (ORDER BY Value)
            FROM    DummyData
        ) d
WHERE   rn % @x_thValues = 0                    


  1. Mohu převést tento znak utf8?

  2. Zploštění vztahu s polem tak, aby se vydával jeden řádek na položku pole

  3. Perl Connection Pooling

  4. Instalace Oracle 9i Developer Suite 2.0 na Windows