Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Среднее значения без учета макс и мин!
|
|||
|---|---|---|---|
|
#18+
Приветствую, Товарищи Задание. Найти среднее значение всех зарплат, без учета их максимального и минимального значения. Сделал так. через MIN() MAX() OVER SELECT AVG(sal) FROM (SELECT sal, MIN(sal) OVER() min_sal, MAX(sal) OVER() max_sal FROM emp) x WHERE sal NOT IN (min_sal, max_sal) GO все работает. среднее значение зп выдает верное. Решил сделать другим способом, посредством функции ROW_NUMBER. SELECT AVG(SAL) avg_sal FROM(SELECT sal, ROW_NUMBER() OVER(ORDER BY sal) rn FROM emp) x WHERE rn NOT IN ((SELECT MAX(rn) FROM emp), (SELECT MIN(rn) FROM emp)) GO ПО идее я выбираю все начения кроме макс и мин зарплаты. однако запрсо не работает. подскажите на что обратить внимание, как переделать. Ошибка в том. что в предикате WHERE нельзя использовать агрегатные функции, поидее можно сделать с HAVING. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 09:31 |
|
||
|
Среднее значения без учета макс и мин!
|
|||
|---|---|---|---|
|
#18+
dermama, Может вам медиана нужна? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 09:35 |
|
||
|
Среднее значения без учета макс и мин!
|
|||
|---|---|---|---|
|
#18+
dermama, В итоге я отчаялся и сделал SELECT AVG(SAL) avg_sal FROM(SELECT sal, ROW_NUMBER() OVER(ORDER BY sal) rn FROM emp) x WHERE rn BETWEEN 2 AND 13 GO и все работает верно, однако для этого запроса мне нужно посмотреть выборкой какой номер у максимального ранга. то есть потеря времени ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 09:37 |
|
||
|
Среднее значения без учета макс и мин!
|
|||
|---|---|---|---|
|
#18+
TaPaK, нет, именно среднюю зп без учета максимальной зп во всей таблице и минимальной ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 09:40 |
|
||
|
Среднее значения без учета макс и мин!
|
|||
|---|---|---|---|
|
#18+
dermamaTaPaK, нет, именно среднюю зп без учета максимальной зп во всей таблице и минимальной бредовая сущность, 50 000 уйдёт, а 49999 учитываем ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 09:42 |
|
||
|
Среднее значения без учета макс и мин!
|
|||
|---|---|---|---|
|
#18+
Задача глупая, но у нее есть такое же глупое решение. Среднее — это сумма значений, деленная на количество значений. Нужный результат — это (сумма значений - min - max) деленная на (количество значений - 2). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 09:56 |
|
||
|
Среднее значения без учета макс и мин!
|
|||
|---|---|---|---|
|
#18+
Alibek B.Задача глупая, но у нее есть такое же глупое решение. Среднее — это сумма значений, деленная на количество значений. Нужный результат — это (сумма значений - min - max) деленная на (количество значений - 2). Нет, т.к. записей с максимальным и минимальным значением может быть больше чем по одной. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 10:01 |
|
||
|
Среднее значения без учета макс и мин!
|
|||
|---|---|---|---|
|
#18+
dermamadermama, В итоге я отчаялся и сделал SELECT AVG(SAL) avg_sal FROM(SELECT sal, ROW_NUMBER() OVER(ORDER BY sal) rn FROM emp) x WHERE rn BETWEEN 2 AND 13 GO и все работает верно, однако для этого запроса мне нужно посмотреть выборкой какой номер у максимального ранга. то есть потеря времениТак сделайте 2 ROW_NUMBER: Код: sql 1. 2. 3. 4. TaPaKбредовая сущность, 50 000 уйдёт, а 49999 учитываемВ принципе это широко используемое в статистической науке удаление верхних и нижних выбросов, хотя делают это обычно в более общем виде, а не "удаляя одно значение". И используется такое редко, всё таки медианное значение для подобных целей подходит лучше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 10:02 |
|
||
|
Среднее значения без учета макс и мин!
|
|||
|---|---|---|---|
|
#18+
msLex, В моем случае не так, однако логика вернаю sal 800 950 1100 1250 1250 1300 1500 1600 2450 2850 2975 3000 3000 5000 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 10:03 |
|
||
|
Среднее значения без учета макс и мин!
|
|||
|---|---|---|---|
|
#18+
alexeyvg, нормально, я бы сам не додумался до такого решения( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 10:06 |
|
||
|
Среднее значения без учета макс и мин!
|
|||
|---|---|---|---|
|
#18+
dermamaНайти среднее значение всех зарплат, без учета их максимального и минимального значения. Код: sql 1. dermamaвсе работает. среднее значение зп выдает верное. Насколько верно получаемое значение, если 2 или более записей имеют равное макс. или мин. значение? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 10:09 |
|
||
|
Среднее значения без учета макс и мин!
|
|||
|---|---|---|---|
|
#18+
Топ топ в подзапросах Правда совершенно непонятно, вам надо исключить все максимальные-минимальные значения или только по одноой записи? Селект среднее Из Если оно не равно (максимальное из/ топ 1 ордер desc) и не равно (минимальное из/ топ 1 ордер asc) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 10:11 |
|
||
|
Среднее значения без учета макс и мин!
|
|||
|---|---|---|---|
|
#18+
alexeyvg, и как с дублями будет жить? Код: sql 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 10:12 |
|
||
|
Среднее значения без учета макс и мин!
|
|||
|---|---|---|---|
|
#18+
AkinadermamaНайти среднее значение всех зарплат, без учета их максимального и минимального значения. Код: sql 1. dermamaвсе работает. среднее значение зп выдает верное. Насколько верно получаемое значение, если 2 или более записей имеют равное макс. или мин. значение? дак функция ROW_number дает уникальные значения для каждой зарплаты, не важно, сколько одинаковых значений зараплат у меня в итоговом множестве ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 10:15 |
|
||
|
Среднее значения без учета макс и мин!
|
|||
|---|---|---|---|
|
#18+
TaPaKalexeyvg, и как с дублями будет жить? Код: sql 1. 2. 3. 4. 5. 6. Я показал, как модифицировать запрос ТС, логика которого ТС подходит. А то, что его запрос противоречит его же постановке задачи, это уже другое дело :-) Для сформулированной задачи, конечено, правильным будет ваш вариант. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 10:16 |
|
||
|
Среднее значения без учета макс и мин!
|
|||
|---|---|---|---|
|
#18+
dermamaAkinaпропущено... Код: sql 1. пропущено... Насколько верно получаемое значение, если 2 или более записей имеют равное макс. или мин. значение? дак функция ROW_number дает уникальные значения для каждой зарплаты, не важно, сколько одинаковых значений зараплат у меня в итоговом множестве Тьфу, не туда смотрел, всеравно MAX, MIN () OVER() просто находит мне макс и мин результаты по всему множеству, и уже тоже без разницы, сколько там одинаковых значений, ну как я понимаю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 10:17 |
|
||
|
Среднее значения без учета макс и мин!
|
|||
|---|---|---|---|
|
#18+
dermamadermamaпропущено... дак функция ROW_number дает уникальные значения для каждой зарплаты, не важно, сколько одинаковых значений зараплат у меня в итоговом множестве Тьфу, не туда смотрел, всеравно MAX, MIN () OVER() просто находит мне макс и мин результаты по всему множеству, и уже тоже без разницы, сколько там одинаковых значений, ну как я понимаю хотяяя, необходимо проверить, так сразу не смогу сказать, я изучаю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 10:17 |
|
||
|
Среднее значения без учета макс и мин!
|
|||
|---|---|---|---|
|
#18+
dermamaAkinaпропущено... Код: sql 1. пропущено... Насколько верно получаемое значение, если 2 или более записей имеют равное макс. или мин. значение? дак функция ROW_number дает уникальные значения для каждой зарплаты, не важно, сколько одинаковых значений зараплат у меня в итоговом множествефункция ROW_number просто нумерует записи Вот если есть зарплаты 100 100 90 80 70 60 То запрос с ROW_number уберёт только верхнюю и нажнюю строчки, и среднее будет считаться по 100 90 80 70 А нужно, наверное, так? 90 80 70 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 10:19 |
|
||
|
Среднее значения без учета макс и мин!
|
|||
|---|---|---|---|
|
#18+
alexeyvgdermamaпропущено... дак функция ROW_number дает уникальные значения для каждой зарплаты, не важно, сколько одинаковых значений зараплат у меня в итоговом множествефункция ROW_number просто нумерует записи Вот если есть зарплаты 100 100 90 80 70 60 То запрос с ROW_number уберёт только верхнюю и нажнюю строчки, и среднее будет считаться по 100 90 80 70 А нужно, наверное, так? 90 80 70 Проверил свой запрос с MIN MAX () OVER счиатем верно, находит среднеее значение 240 на 3 = 80 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 10:27 |
|
||
|
Среднее значения без учета макс и мин!
|
|||
|---|---|---|---|
|
#18+
dermamaalexeyvgпропущено... функция ROW_number просто нумерует записи Вот если есть зарплаты 100 100 90 80 70 60 То запрос с ROW_number уберёт только верхнюю и нажнюю строчки, и среднее будет считаться по 100 90 80 70 А нужно, наверное, так? 90 80 70 Проверил свой запрос с MIN MAX () OVER счиатем верно, находит среднеее значение 240 на 3 = 80 с ROW_NUMBER не првоерял, но по идее, да, по моей логике он только верхнее и нижнее значение откинет, а такоеже значение с самой большой зарплатой он оставит и я получу не верное значение.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 10:29 |
|
||
|
Среднее значения без учета макс и мин!
|
|||
|---|---|---|---|
|
#18+
dermamaпо идее, да, по моей логике он только верхнее и нижнее значение откинет, а такоеже значение с самой большой зарплатой он оставит и я получу не верное значение..Тогда используйте вариант: TaPaK Код: sql 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 10:33 |
|
||
|
Среднее значения без учета макс и мин!
|
|||
|---|---|---|---|
|
#18+
alexeyvgВот если есть зарплаты 100 100 90 80 70 60 То запрос с ROW_number уберёт только верхнюю и нажнюю строчки, и среднее будет считаться по 100 90 80 70 А нужно, наверное, так? 90 80 70 если нужно последнее, то меняем Row_Number() на rank() (или dense_rank()) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 10:37 |
|
||
|
Среднее значения без учета макс и мин!
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 10:45 |
|
||
|
Среднее значения без учета макс и мин!
|
|||
|---|---|---|---|
|
#18+
iap, всем большое спасибо, проблема с одинаковыми макс или мин значениемя поможет решить RANK так как он одинаковым значениям присвоит одинаковый ранг, чего не делает ROW_number, видео посмотрю после работы. Однако, у меня остался вопрос, как все таки решить именно МОЙ пример через ROW_NUMBER и с обязательным условием WHERE SELECT AVG(SAL) avg_sal FROM(SELECT sal, ROW_NUMBER() OVER(ORDER BY sal) rn FROM emp) x WHERE rn NOT IN ((SELECT MAX(rn) FROM emp), (SELECT MIN(rn) FROM emp)) GO ТО есть как сделать с NOT IN тоесть как изменить WHERE при этом во вложенном запросе не использовать еще один ROW_NUMBER , я имею ввиду следующий запрос SELECT AVG(SAL) avg_sal FROM(SELECT sal, ROW_NUMBER() OVER(ORDER BY sal) rn, ROW_NUMBER() OVER(ORDER BY sal desc) rm FROM emp) x WHERE rn > 1 AND rm > 1 GO ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 11:18 |
|
||
|
Среднее значения без учета макс и мин!
|
|||
|---|---|---|---|
|
#18+
dermamaс ROW_NUMBER не првоерял, но по идее, да, по моей логике он только верхнее и нижнее значение откинет, а такоеже значение с самой большой зарплатой он оставит и я получу не верное значение.. Скажите, какой ответ должен быть для таких данных: 100 100 90 85 85 70 Варианты ответов: 91.67 90 86.67 87.5 другое значение ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 11:20 |
|
||
|
Среднее значения без учета макс и мин!
|
|||
|---|---|---|---|
|
#18+
Akinadermamaс ROW_NUMBER не првоерял, но по идее, да, по моей логике он только верхнее и нижнее значение откинет, а такоеже значение с самой большой зарплатой он оставит и я получу не верное значение.. Скажите, какой ответ должен быть для таких данных: 100 100 90 85 85 70 Варианты ответов: 91.67 90 86.67 87.5 другое значение ответ (90+85+85)/3 = 86.6666667 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 11:23 |
|
||
|
Среднее значения без учета макс и мин!
|
|||
|---|---|---|---|
|
#18+
dermamaAkinaпропущено... Скажите, какой ответ должен быть для таких данных: 100 100 90 85 85 70 Варианты ответов: 91.67 90 86.67 87.5 другое значение ответ (90+85+85)/3 = 86.6666667 ну если иметь ввиду, что я самое большое и самое мальенькое значение не учитываю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 11:24 |
|
||
|
Среднее значения без учета макс и мин!
|
|||
|---|---|---|---|
|
#18+
dermamaAkinaпропущено... Скажите, какой ответ должен быть для таких данных: 100 100 90 85 85 70 Варианты ответов: 91.67 90 86.67 87.5 другое значение ответ (90+85+85)/3 = 86.6666667 а если бы учитывалось еще и одно из двух значений 100, то 90 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 11:27 |
|
||
|
Среднее значения без учета макс и мин!
|
|||
|---|---|---|---|
|
#18+
TaPaKalexeyvg, и как с дублями будет жить? Код: sql 1. 2. 3. 4. 5. 6. а по какой причине было принято решение использовать рекурсивный оператор WITH, в каких случаях его нужно использовать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 11:37 |
|
||
|
Среднее значения без учета макс и мин!
|
|||
|---|---|---|---|
|
#18+
dermamaTaPaKalexeyvg, и как с дублями будет жить? Код: sql 1. 2. 3. 4. 5. 6. а по какой причине было принято решение использовать рекурсивный оператор WITH, в каких случаях его нужно использовать? рекурсивный оператор.... запишу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 11:38 |
|
||
|
Среднее значения без учета макс и мин!
|
|||
|---|---|---|---|
|
#18+
TaPaKdermamaпропущено... а по какой причине было принято решение использовать рекурсивный оператор WITH, в каких случаях его нужно использовать? рекурсивный оператор.... запишу обобщенное табличное выражение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 11:42 |
|
||
|
Среднее значения без учета макс и мин!
|
|||
|---|---|---|---|
|
#18+
dermama, Код: sql 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 11:47 |
|
||
|
Среднее значения без учета макс и мин!
|
|||
|---|---|---|---|
|
#18+
Kopellydermama, Код: sql 1. 2. 3. 4. блин, это гениально, спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 11:49 |
|
||
|
Среднее значения без учета макс и мин!
|
|||
|---|---|---|---|
|
#18+
Kopellydermama, Код: sql 1. 2. 3. 4. тоже мимо, следующий :) используйте когда хотите, не нравиться перенесите в CROSS ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 11:49 |
|
||
|
Среднее значения без учета макс и мин!
|
|||
|---|---|---|---|
|
#18+
TaPaKKopellydermama, Код: sql 1. 2. 3. 4. тоже мимо, следующий :) используйте когда хотите, не нравиться перенесите в CROSS почему мимо? просто ROW_NUMBER на RANK заменить, Тапак, подскажи пожалуйста, для чего необходим Cross join? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 11:53 |
|
||
|
Среднее значения без учета макс и мин!
|
|||
|---|---|---|---|
|
#18+
dermamaTaPaKпропущено... тоже мимо, следующий :) используйте когда хотите, не нравиться перенесите в CROSS почему мимо? просто ROW_NUMBER на RANK заменить, Тапак, подскажи пожалуйста, для чего необходим Cross join? в рамках данной задачи конечно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 11:54 |
|
||
|
Среднее значения без учета макс и мин!
|
|||
|---|---|---|---|
|
#18+
dermamaTaPaKпропущено... тоже мимо, следующий :) используйте когда хотите, не нравиться перенесите в CROSS почему мимо? просто ROW_NUMBER на RANK заменить, Тапак, подскажи пожалуйста, для чего необходим Cross join? это точно также исключает только одно максимальное и минимальное значение ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 11:55 |
|
||
|
Среднее значения без учета макс и мин!
|
|||
|---|---|---|---|
|
#18+
dermamaпочему мимо? просто ROW_NUMBER на RANK заменить, нельзя т.к. count(*) = max(row_numver), но != max(rank) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 11:56 |
|
||
|
Среднее значения без учета макс и мин!
|
|||
|---|---|---|---|
|
#18+
TaPaKdermamaпропущено... почему мимо? просто ROW_NUMBER на RANK заменить, Тапак, подскажи пожалуйста, для чего необходим Cross join? это точно также исключает только одно максимальное и минимальное значение SELECT sal, ROW_NUMBER() OVER(ORDER BY sal) rn FROM asd sal rn 60 1 70 2 80 3 90 4 100 5 100 6 SELECT sal, RANK() OVER(ORDER BY sal desc) rn FROM asd sal rn 100 1 100 1 90 3 80 4 70 5 60 6 если выбрать .....попробовал сделать такого плана запрос SELECT sal, MAX(rn) dd FROM (SELECT sal, RANK() OVER(ORDER BY sal desc) rn from asd) x GROUP BY sal я в итоге всеравно получаю 100 в итоговом множестве....я совсем запутался, правда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 12:02 |
|
||
|
Среднее значения без учета макс и мин!
|
|||
|---|---|---|---|
|
#18+
dermamaTaPaKпропущено... это точно также исключает только одно максимальное и минимальное значение SELECT sal, ROW_NUMBER() OVER(ORDER BY sal) rn FROM asd sal rn 60 1 70 2 80 3 90 4 100 5 100 6 SELECT sal, RANK() OVER(ORDER BY sal desc) rn FROM asd sal rn 100 1 100 1 90 3 80 4 70 5 60 6 если выбрать .....попробовал сделать такого плана запрос SELECT sal, MAX(rn) dd FROM (SELECT sal, RANK() OVER(ORDER BY sal desc) rn from asd) x GROUP BY sal я в итоге всеравно получаю 100 в итоговом множестве....я совсем запутался, правда.'' Пожалуйста, не читайте мое сообщение., я сам понял, что написал бред, запрос делает все верно, я реализовал не то, что хотел... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 12:04 |
|
||
|
Среднее значения без учета макс и мин!
|
|||
|---|---|---|---|
|
#18+
dermamaответ (90+85+85)/3 = 86.6666667Ага... то есть отбросить не максимальную (минимальную) зарплату, а все зарплаты с максимальным (минимальным) значением. Иными словами, для макс/мин значений дубликаты "схлопывать", тогда как для оставшихся значений - нет. dermamaа если бы учитывалось еще и одно из двух значений 100, то 90 Знаете, у Вас как постановщика есть вполне конкретная задача - и от Вас не должно по идее поступать никаких "если бы", "может быть" и т.п. Это мы можем (и, к сожалению, нам приходится) гадать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 12:10 |
|
||
|
Среднее значения без учета макс и мин!
|
|||
|---|---|---|---|
|
#18+
Akinadermamaответ (90+85+85)/3 = 86.6666667Ага... то есть отбросить не максимальную (минимальную) зарплату, а все зарплаты с максимальным (минимальным) значением. Иными словами, для макс/мин значений дубликаты "схлопывать", тогда как для оставшихся значений - нет. dermamaа если бы учитывалось еще и одно из двух значений 100, то 90 Знаете, у Вас как постановщика есть вполне конкретная задача - и от Вас не должно по идее поступать никаких "если бы", "может быть" и т.п. Это мы можем (и, к сожалению, нам приходится) гадать... В таком случае мы зря затеяли котовасию с дубликатами? и если в таблице есть много одинаковых значений, при этом все они максимальные, то следовать необходимо условию задачи и игнорировать дубликаты, так как они не максимальные уже значения, а лишь дублирующие друг друга, хотя понятие максимальное , если пользоваться функция ранжирования, они как раз таки и получают за счет присвоения ранга... поэтому дубликаты стоит игнорировать))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 12:14 |
|
||
|
Среднее значения без учета макс и мин!
|
|||
|---|---|---|---|
|
#18+
dermamaAkinaпропущено... Ага... то есть отбросить не максимальную (минимальную) зарплату, а все зарплаты с максимальным (минимальным) значением. Иными словами, для макс/мин значений дубликаты "схлопывать", тогда как для оставшихся значений - нет. пропущено... Знаете, у Вас как постановщика есть вполне конкретная задача - и от Вас не должно по идее поступать никаких "если бы", "может быть" и т.п. Это мы можем (и, к сожалению, нам приходится) гадать... В таком случае мы зря затеяли котовасию с дубликатами? и если в таблице есть много одинаковых значений, при этом все они максимальные, то следовать необходимо условию задачи и игнорировать дубликаты, так как они не максимальные уже значения, а лишь дублирующие друг друга, хотя понятие максимальное , если пользоваться функция ранжирования, они как раз таки и получают за счет присвоения ранга... поэтому дубликаты стоит игнорировать))) либо избегать использования ранжирующих функций..... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 12:16 |
|
||
|
Среднее значения без учета макс и мин!
|
|||
|---|---|---|---|
|
#18+
Помогите Даше определится с ТЗ (с) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 12:20 |
|
||
|
Среднее значения без учета макс и мин!
|
|||
|---|---|---|---|
|
#18+
dermamaобобщенное табличное выражение.Просто такая форма записи. Можно то же самое записать подзапросом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 12:30 |
|
||
|
Среднее значения без учета макс и мин!
|
|||
|---|---|---|---|
|
#18+
alexeyvgdermamaобобщенное табличное выражение.Просто такая форма записи. Можно то же самое записать подзапросом. понятно, спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 12:32 |
|
||
|
Среднее значения без учета макс и мин!
|
|||
|---|---|---|---|
|
#18+
dermamaПриветствую, Товарищи Задание. Найти среднее значение всех зарплат, без учета их максимального и минимального значения. Сделал так. через MIN() MAX() OVER SELECT AVG(sal) FROM (SELECT sal, MIN(sal) OVER() min_sal, MAX(sal) OVER() max_sal FROM emp) x WHERE sal NOT IN (min_sal, max_sal) GO все работает. среднее значение зп выдает верное. Решил сделать другим способом, посредством функции ROW_NUMBER. SELECT AVG(SAL) avg_sal FROM(SELECT sal, ROW_NUMBER() OVER(ORDER BY sal) rn FROM emp) x WHERE rn NOT IN ((SELECT MAX(rn) FROM emp), (SELECT MIN(rn) FROM emp)) GO ПО идее я выбираю все начения кроме макс и мин зарплаты. однако запрсо не работает. подскажите на что обратить внимание, как переделать. Ошибка в том. что в предикате WHERE нельзя использовать агрегатные функции, поидее можно сделать с HAVING. Так у Вас считается макс и мин от всех сотрудников. А нужно для каждого сотрудника отдельно их отсечь, а уж из остатка считать.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 13:22 |
|
||
|
Среднее значения без учета макс и мин!
|
|||
|---|---|---|---|
|
#18+
Oleg_SQLТак у Вас считается макс и мин от всех сотрудников. А нужно для каждого сотрудника отдельно их отсечь, а уж из остатка считать.. Новый виток... высечь сотрудников ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 13:23 |
|
||
|
Среднее значения без учета макс и мин!
|
|||
|---|---|---|---|
|
#18+
dermama, А не проще ли сделать самое простое? (SUM() - MIN() - MAX())/(COUNT() - 2) Про проверку на деление на 0 не забыть ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 14:43 |
|
||
|
Среднее значения без учета макс и мин!
|
|||
|---|---|---|---|
|
#18+
AkinadermamaНайти среднее значение всех зарплат, без учета их максимального и минимального значения. Код: sql 1. dermamaвсе работает. среднее значение зп выдает верное. Насколько верно получаемое значение, если 2 или более записей имеют равное макс. или мин. значение? SELECT (SUM(salary)-MIN(salary)-MAX(salary))/(NULLIF(COUNT(salary), 2)-2) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 14:45 |
|
||
|
Среднее значения без учета макс и мин!
|
|||
|---|---|---|---|
|
#18+
a_voroninА не проще ли сделать самое простое?a_voroninSELECT (SUM(salary)-MIN(salary)-MAX(salary))/(NULLIF(COUNT(salary), 2)-2)Еще один Помедитируйте над результатом: Код: sql 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 15:16 |
|
||
|
|

start [/forum/topic.php?all=1&fid=46&tid=1688400]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
47ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 230ms |
| total: | 363ms |

| 0 / 0 |
