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

Откуда: Екатеринбург
Сообщений: 305
Добрый вечер!

Готовлю таблицу фактов для OLAP. Кол-во записей 300000. В каждой записи есть поле dat и kod, мне нужно для каждой строки посмотреть сколько есть записей с таким же kod, но с меньшей dat и проставить пометки типа 1 - 0 таких записей, 2 - 1 запись и т.д.

Не знаю как, мне это написать кроме следующего оооочень медленного кода :(
UPDATE t SET nal_sz = 1 
FROM t
WHERE dbo.AccountCount(kod_pr, dat)= 0


CREATE FUNCTION [dbo].[AccountCount]
(@kod_pr int, @dat datetime)
RETURNS int
AS
BEGIN
	declare @count int
	
	set @count = (select count(distinct dat) 
	from t where dat<@dat and kod_pr=@kod_pr)
	
	return @count

END
6 дек 13, 22:47    [15256192]     Ответить | Цитировать Сообщить модератору
 Re: Помогите написать запрос  [new]
ElenaLeont
Member

Откуда: Екатеринбург
Сообщений: 305
получилось вроде

UPDATE t SET nal_sz = (select Count(distinct ff.dat) + 1 
from t f
where f.kod_pr=t.kod_pr and f.dat<t.dat)
FROM t
6 дек 13, 23:07    [15256265]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить