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

Откуда: Санкт-Петербург
Сообщений: 407
Здравствуйте!
В одном из выпусков MSSQL была функция, которая обрезала результирующий список строк по краям (чтобы избавиться от "выбросов" в статистике).
Никак не могу вспомнить ее названия.
26 ноя 13, 14:45    [15191770]     Ответить | Цитировать Сообщить модератору
 Re: Функция обрезающая результат выдачи по краям  [new]
_djХомяГ
Guest
ltrim(rtrim(строка)) - если строки по краям?
26 ноя 13, 14:50    [15191812]     Ответить | Цитировать Сообщить модератору
 Re: Функция обрезающая результат выдачи по краям  [new]
_djХомяГ
Guest
или left right
26 ноя 13, 14:52    [15191828]     Ответить | Цитировать Сообщить модератору
 Re: Функция обрезающая результат выдачи по краям  [new]
Semyglass
Member

Откуда: Санкт-Петербург
Сообщений: 407
Нужно чтобы она не строку обрезала, а результат запроса. т.е. Выдавала допустим из 10 строк средние 8 или 6...
26 ноя 13, 14:54    [15191846]     Ответить | Цитировать Сообщить модератору
 Re: Функция обрезающая результат выдачи по краям  [new]
Glory
Member

Откуда:
Сообщений: 104751
Semyglass
которая обрезала результирующий список строк по краям

Функция, которая уменьшает число записей в результате ???
26 ноя 13, 14:54    [15191851]     Ответить | Цитировать Сообщить модератору
 Re: Функция обрезающая результат выдачи по краям  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
_djХомяГ
ltrim(rtrim(строка)) - если строки по краям?
А про «"выбросы" в статистике» Вы тоже догадались?
26 ноя 13, 14:54    [15191852]     Ответить | Цитировать Сообщить модератору
 Re: Функция обрезающая результат выдачи по краям  [new]
Glory
Member

Откуда:
Сообщений: 104751
Semyglass
Нужно чтобы она не строку обрезала, а результат запроса. т.е. Выдавала допустим из 10 строк средние 8 или 6...

Такой функции не существует
26 ноя 13, 14:54    [15191861]     Ответить | Цитировать Сообщить модератору
 Re: Функция обрезающая результат выдачи по краям  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
Semyglass
Нужно чтобы она не строку обрезала, а результат запроса. т.е. Выдавала допустим из 10 строк средние 8 или 6...
Вам нужна функция STDEV или STDEVP
26 ноя 13, 14:56    [15191874]     Ответить | Цитировать Сообщить модератору
 Re: Функция обрезающая результат выдачи по краям  [new]
Semyglass
Member

Откуда: Санкт-Петербург
Сообщений: 407
iap,

не совсем понимаю как мне ими воспользоваться. Как мне например убрать "выбросы" (слишком большие или слишком маленькие значения) из таблицы с ценами?

Буду очень признателен.
26 ноя 13, 15:08    [15192009]     Ответить | Цитировать Сообщить модератору
 Re: Функция обрезающая результат выдачи по краям  [new]
Ennor Tiegael
Member

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

NTILE() посмотрите, кажется оно.
26 ноя 13, 15:09    [15192020]     Ответить | Цитировать Сообщить модератору
 Re: Функция обрезающая результат выдачи по краям  [new]
Glory
Member

Откуда:
Сообщений: 104751
Semyglass
Как мне например убрать "выбросы" (слишком большие или слишком маленькие значения) из таблицы с ценами?

От чего они "слишком большие или слишком маленькие значения" ? От среднего ?
26 ноя 13, 15:22    [15192167]     Ответить | Цитировать Сообщить модератору
 Re: Функция обрезающая результат выдачи по краям  [new]
Semyglass
Member

Откуда: Санкт-Петербург
Сообщений: 407
Glory
Semyglass
Как мне например убрать "выбросы" (слишком большие или слишком маленькие значения) из таблицы с ценами?

От чего они "слишком большие или слишком маленькие значения" ? От среднего ?


да, допустим от среднего
26 ноя 13, 15:24    [15192203]     Ответить | Цитировать Сообщить модератору
 Re: Функция обрезающая результат выдачи по краям  [new]
Glory
Member

Откуда:
Сообщений: 104751
Semyglass
да, допустим от среднего

Ну так для этого нужно сначала посчитать среднее. А потом сравнить его с каждым значением. На предмет превышения значения, которое для вас является "слишком большим или слишком маленьким"
26 ноя 13, 15:26    [15192225]     Ответить | Цитировать Сообщить модератору
 Re: Функция обрезающая результат выдачи по краям  [new]
Semyglass
Member

Откуда: Санкт-Петербург
Сообщений: 407
Glory,

В принципе NTILE решил проблему. Можно просто обрезать по 1 проценту сверху и снизу.
Спасибо большое!
26 ноя 13, 15:28    [15192251]     Ответить | Цитировать Сообщить модератору
 Re: Функция обрезающая результат выдачи по краям  [new]
Glory
Member

Откуда:
Сообщений: 104751
Semyglass
Можно просто обрезать по 1 проценту сверху и снизу.

Только эта функция не "обрезает". Она ранжирует.
С таким же успехом можно использовать TOP (expression) [PERCENT]
26 ноя 13, 15:30    [15192282]     Ответить | Цитировать Сообщить модератору
 Re: Функция обрезающая результат выдачи по краям  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
Semyglass
iap,

не совсем понимаю как мне ими воспользоваться. Как мне например убрать "выбросы" (слишком большие или слишком маленькие значения) из таблицы с ценами?

Буду очень признателен.
Вы, кажется, упоминали слово "статистика"?
Значит, знакомы с понятием "стандартное отклонение"?
Так вот функции STDEV и STDEVP - это и есть "стандартное отклонение".
Можно и в Википедию заглянуть, если учебник потеряли :)
26 ноя 13, 15:55    [15192508]     Ответить | Цитировать Сообщить модератору
 Re: Функция обрезающая результат выдачи по краям  [new]
Semyglass
Member

Откуда: Санкт-Петербург
Сообщений: 407
а как с помощью TOP обрезать выдачу с обоих сторон?
26 ноя 13, 15:55    [15192509]     Ответить | Цитировать Сообщить модератору
 Re: Функция обрезающая результат выдачи по краям  [new]
Glory
Member

Откуда:
Сообщений: 104751
Semyglass
а как с помощью TOP обрезать выдачу с обоих сторон?

Отсортировать 2 раза - по возрастанию и убыванию
26 ноя 13, 15:57    [15192524]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить