Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 каждая пятая запись  [new]
LAKERS824
Member

Откуда:
Сообщений: 29
Добрый день!

Как вытащить каждую 10-ю запись из таблицы?
27 май 11, 16:30    [10721266]     Ответить | Цитировать Сообщить модератору
 Re: каждая пятая запись  [new]
Glory
Member

Откуда:
Сообщений: 104751
Пронумеровать и выбрать нужные
27 май 11, 16:31    [10721275]     Ответить | Цитировать Сообщить модератору
 Re: каждая пятая запись  [new]
Shakill
Member

Откуда: мск
Сообщений: 1887
LAKERS824,
1. отсортировать строки по нужному столбцу
2. раздать номера
3. выбрать те номера, которые делятся на 5 (или на 10, непонятно)
27 май 11, 16:32    [10721288]     Ответить | Цитировать Сообщить модератору
 Re: каждая пятая запись  [new]
LAKERS824
Member

Откуда:
Сообщений: 29
а как их пронумеровать?
27 май 11, 16:39    [10721356]     Ответить | Цитировать Сообщить модератору
 Re: каждая пятая запись  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
NTILE(10) , ROW_NUMBER()
27 май 11, 16:41    [10721377]     Ответить | Цитировать Сообщить модератору
 Re: каждая пятая запись  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
WITH CTE AS(SELECT N=ROW_NUMBER()OVER(ORDER BY(SELECT 0))%5,* FROM T)
SELECT *
FROM CTE
WHERE N=1;
27 май 11, 16:41    [10721379]     Ответить | Цитировать Сообщить модератору
 Re: каждая пятая запись  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
iap
WITH CTE AS(SELECT N=ROW_NUMBER()OVER(ORDER BY(SELECT 0))%5,* FROM T)
SELECT *
FROM CTE
WHERE N=1;
* Вместо выделенного фрагмента - список выражений, определяющих порядок номеров
27 май 11, 16:42    [10721388]     Ответить | Цитировать Сообщить модератору
 Re: каждая пятая запись  [new]
Ennor Tiegael
Member

Откуда:
Сообщений: 3422
Фигня это все:
select top 20 percent * from dbo.table;
Это каждая пятая. Для каждой десятой, соответственно, в 2 раза меньше.
27 май 11, 17:03    [10721607]     Ответить | Цитировать Сообщить модератору
 Re: каждая пятая запись  [new]
LAKERS824
Member

Откуда:
Сообщений: 29
Ennor Tiegael
Фигня это все:
select top 20 percent * from dbo.table;
Это каждая пятая. Для каждой десятой, соответственно, в 2 раза меньше.


это неправильно, берется 20 первых процентов от записей, а не каждая пятая запись
27 май 11, 17:09    [10721670]     Ответить | Цитировать Сообщить модератору
 Re: каждая пятая запись  [new]
Ennor Tiegael
Member

Откуда:
Сообщений: 3422
LAKERS824,

Это абсолютно одно и то же до тех пор, пока вы не задаете порядок следования записей. А вы его не задаете.

PS И кстати, совсем не факт, что первых.
27 май 11, 17:13    [10721687]     Ответить | Цитировать Сообщить модератору
 Re: каждая пятая запись  [new]
Верблюд
Member

Откуда: Яженичеловек!!!
Сообщений: 65007
LAKERS824
Добрый день!

Как вытащить каждую 10-ю запись из таблицы?


declare @t table (id int);
insert into @t (id) select top 1000 row_number() over (order by name) from spt_values; 

select top 1 with ties * 
from @t
order by row_number() over (order by id) % 10;
27 май 11, 17:20    [10721723]     Ответить | Цитировать Сообщить модератору
 Re: каждая пятая запись  [new]
Верблюд
Member

Откуда: Яженичеловек!!!
Сообщений: 65007
LAKERS824
Добрый день!

Как вытащить каждую 10-ю запись из таблицы?


declare @t table (id int);
insert into @t (id) select top 1000 row_number() over (order by name) from spt_values; 

select top 1 with ties * 
from @t
order by row_number() over (order by id) % 10;
27 май 11, 17:20    [10721724]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить