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

Откуда:
Сообщений: 146
Подскажите
select
x1.
x2
...
x100
from mytab


как мне расчитать среднее значение, минимальное , максимальное, стандартное отклонение для всех 100 колонок

т.е. на выходе
должна быть такая табличка
column среднее мин макс стандартное отклонение
x1
x2
x3

Как так сделать?
20 ноя 18, 14:46    [21739171]     Ответить | Цитировать Сообщить модератору
 Re: расчет простых статистик в SQL  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36686
pivot

upd: вернее, unpivot

Сообщение было отредактировано: 20 ноя 18, 14:54
20 ноя 18, 14:52    [21739178]     Ответить | Цитировать Сообщить модератору
 Re: расчет простых статистик в SQL  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
Kontox,

AVG() MIN() MAX() STDEV() PERCENTILE_DISC/PERCENTILE_CONT
20 ноя 18, 14:52    [21739179]     Ответить | Цитировать Сообщить модератору
 Re: расчет простых статистик в SQL  [new]
Kontox
Member

Откуда:
Сообщений: 146
Я читал про unpivot, я просто синтакс составить не могу.
20 ноя 18, 15:00    [21739196]     Ответить | Цитировать Сообщить модератору
 Re: расчет простых статистик в SQL  [new]
Kontox
Member

Откуда:
Сообщений: 146
а именно я не хочу
select v.colname, avg(v.val), min(v.val), max(v.val), stdev(v.val)
from t cross apply
(values ('x1', x1), ('x2', x2), . . .
) v(colname, val)
group by v.colname;
вручную вводить x1,x1 ...x100
20 ноя 18, 15:03    [21739203]     Ответить | Цитировать Сообщить модератору
 Re: расчет простых статистик в SQL  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36686
Kontox
а именно я не хочу
select v.colname, avg(v.val), min(v.val), max(v.val), stdev(v.val)
from t cross apply
(values ('x1', x1), ('x2', x2), . . .
) v(colname, val)
group by v.colname;
вручную вводить x1,x1 ...x100
Напишите скрипт, который сформирует текст запроса за вас.
20 ноя 18, 15:06    [21739208]     Ответить | Цитировать Сообщить модератору
 Re: расчет простых статистик в SQL  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
Kontox
а именно я не хочу
select v.colname, avg(v.val), min(v.val), max(v.val), stdev(v.val)
from t cross apply
(values ('x1', x1), ('x2', x2), . . .
) v(colname, val)
group by v.colname;
вручную вводить x1,x1 ...x100

эксель :)
20 ноя 18, 15:08    [21739210]     Ответить | Цитировать Сообщить модератору
 Re: расчет простых статистик в SQL  [new]
Kontox
Member

Откуда:
Сообщений: 146
А как это сделать?
20 ноя 18, 15:08    [21739211]     Ответить | Цитировать Сообщить модератору
 Re: расчет простых статистик в SQL  [new]
iiyama
Member

Откуда:
Сообщений: 642
Kontox,
Динамически
+

SELECT STUFF(
(select  ',(''x' +CAST(number as varchar(3)) +''', x' +CAST(number as varchar(3)) +')'
from master.dbo.spt_values n where n.type=N'P' and number between 1 and 100
for xml path('')
),1,1,'')


Excel
+

Протянуть формулу мышкой, ctrl+C/V
20 ноя 18, 15:34    [21739250]     Ответить | Цитировать Сообщить модератору
 Re: расчет простых статистик в SQL  [new]
Kontox
Member

Откуда:
Сообщений: 146
Все разобрался:)
20 ноя 18, 15:42    [21739266]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить