За последние 24 часа нас посетил 22401 программист и 1158 роботов. Сейчас ищут 865 программистов ...

Средние значения

Тема в разделе "MySQL", создана пользователем IvanKut, 30 янв 2021.

  1. IvanKut

    IvanKut Активный пользователь

    С нами с:
    27 июл 2018
    Сообщения:
    258
    Симпатии:
    0
    Привет
    У меня есть документы инвентаризаций с разным кол-вом товаров в них.
    Мне нужно вычислить СРЕДНЕЕ значение, но так, чтобы совсем косячные документы отбрасывались

    Например, документы с кол-вом товара
    100
    120
    10
    350

    130
    90
    80
    30
    190

    Типа хочу отбросить условно 20% самых больших, 20% самых маленьких, и вычилить среднее. (УСЛОВНО)
    Наверняка есть функции для высчитывания средне взвешенного значения с отбрасыванием пиковых/минимумов.

    Подскажите плиз, какую функцию для подсчета среднего значения лучше использовать.

    PS AVG сильное искожение дает за счет не отброса пиков/минимумов

    Спасибо
     
  2. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.825
    Симпатии:
    738
    Адрес:
    Татарстан
    Готовой нет,
    Отбрасывайте пиковые значения запросом, по отобрнному - среднее
     
  3. IvanKut

    IvanKut Активный пользователь

    С нами с:
    27 июл 2018
    Сообщения:
    258
    Симпатии:
    0
    А как получить 20% самых больших, и 20% самый маленьких значений? Наверняка есть какая-то функция.

    То есть алгоритм такой
    1 - Я получу документы с 20% самыми большими /маленькимми запросами
    2 - исключу их из выборки и посчитаю AVG
     
  4. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.825
    Симпатии:
    738
    Адрес:
    Татарстан
    Одним запросом точно не обойтись...
    1. Найти общее кол-во документов $a = count(*)
    2. Найти среднее для тех 60%, что начинаются после 20% самых маленьких
    Select AVG(sum) from table order by sum limit ($a * 0.2) ($a*0.6)
     
    IvanKut нравится это.
  5. IvanKut

    IvanKut Активный пользователь

    С нами с:
    27 июл 2018
    Сообщения:
    258
    Симпатии:
    0
    Благодарю, понял идею.