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

Откуда:
Сообщений: 566
Почему так ?

+
	if OBJECT_ID('tempdb..#t1') is not null
		drop table #t1

	if OBJECT_ID('tempdb..#t2') is not null
		drop table #t2


	select top 3000000
		convert(float, checksum(newid()))/10 as n
		,left(newid(), 1) as g
	into #t1
	from master..spt_values v1
		cross join master..spt_values v2

	select *
	into #t2
	from #t1

	;with t1 as 
	(
		select g, sum(n) as s
		from #t1
		group by g
	),
	t2 as 
	(
		select g, sum(n) as s
		from #t2
		group by g
	)

	select
		 t2.g 
		,t1.s-t2.s
	from t1
	join t2 on t1.g = t2.g



т.е. например процедура никогда не возвращает одинаковый аутпут?!
28 фев 17, 21:09    [20252355]     Ответить | Цитировать Сообщить модератору
 Re: Float data type  [new]
invm
Member

Откуда: Москва
Сообщений: 9687
_human
Почему так ?
Потому что:
а) float приблизительный тип данных
б) запрос на суммирование выполняется с параллелизмом

В результате sum(n) для одних и тех же g из #t1 и #t2 получаются разными.
Для лечения добавьте к запросу option (maxdop 1).
28 фев 17, 21:29    [20252390]     Ответить | Цитировать Сообщить модератору
 Re: Float data type  [new]
_human
Member

Откуда:
Сообщений: 566
invm
Для лечения добавьте к запросу option (maxdop 1).

правда

а есть где почитать на эту тему ?
28 фев 17, 22:31    [20252519]     Ответить | Цитировать Сообщить модератору
 Re: Float data type  [new]
invm
Member

Откуда: Москва
Сообщений: 9687
_human
а есть где почитать на эту тему ?
На какую тему?
28 фев 17, 23:00    [20252577]     Ответить | Цитировать Сообщить модератору
 Re: Float data type  [new]
iap
Member

Откуда: Москва
Сообщений: 47063
invm
а) float приблизительный тип данных
Смотря в каком смысле.
_human
а есть где почитать на эту тему ?
http://www.yur.ru/science/computer/IEEE754.htm
1 мар 17, 10:09    [20253261]     Ответить | Цитировать Сообщить модератору
 Re: Float data type  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
автор
Для лечения добавьте к запросу option (maxdop 1).

надо ещё что бы отсортированы были одинаково
1 мар 17, 10:23    [20253295]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить