Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / (select/select)*100 / 9 сообщений из 9, страница 1 из 1
10.11.2020, 23:01
    #40016981
Caxa_ASS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(select/select)*100
Всем привет.

Подскажите, пожалуйста, как правильно создать запрос

Код: sql
1.
select count(id) from table 1 where value != 10



разделить на

Код: sql
1.
select count(id) from table 1 where value <= 35



и полученный результат деления умножить на 100

P.S. Запрос для нахождения % числа от числа.

Буду благодарен за помощь.
...
Рейтинг: 0 / 0
10.11.2020, 23:27
    #40016985
komrad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(select/select)*100
Caxa_ASS,

так?
Код: sql
1.
2.
3.
select 
sum(case when value!=10 then 1 else 0 end) / sum(case when value<=35 then 1 else 0 end) * 100 
from table 1 



или короче

Код: sql
1.
2.
3.
select 
sum(iif(value!=10,1,0)) / sum(iif(value<=35,1,0)) * 100 
from table 1 




...
Рейтинг: 0 / 0
10.11.2020, 23:36
    #40016987
Caxa_ASS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(select/select)*100
komrad, спасибо за ответ, но к сожалению нет, на выходе получаю значение 100, что есть не верным результатом
...
Рейтинг: 0 / 0
10.11.2020, 23:56
    #40016989
Caxa_ASS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(select/select)*100
komrad,


если выводить по частям то результаты верны:

Код: sql
1.
2.
select sum(case when value!=10 then 1 else 0 end) from table 1 
select sum(case when value<=35 then 1 else 0 end) from table 1 



но в общем запросе, это почему то не работает
...
Рейтинг: 0 / 0
11.11.2020, 00:48
    #40016996
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(select/select)*100
Caxa_ASS,

% не вычисляется цедочисленно, надо использовать явное или неявное приведение к числу с точкой.
...
Рейтинг: 0 / 0
11.11.2020, 02:01
    #40017004
Caxa_ASS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(select/select)*100
Владислав Колосов, cпасибо за подсказку, модернизировал скрипт @komrad (спасибо отдельное), и получилось следующее:

Код: sql
1.
2.
3.
 select (
 cast (sum(case when value <=35 then 1 else 0 end) as decimal(4,2)) / cast(sum(case when value != 10 then 1 else 0 end) as decimal(4,2)))*100 
from table 1
...
Рейтинг: 0 / 0
11.11.2020, 09:25
    #40017028
Zelius
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(select/select)*100
Caxa_ASS,

а так?
Код: sql
1.
2.
select 100.0 * sum(iif(value!=10,1,0)) / sum(iif(value<=35,1,0))
from table 1 
...
Рейтинг: 0 / 0
11.11.2020, 14:07
    #40017155
Caxa_ASS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(select/select)*100
Zelius, тоже работает, спасибо :)
...
Рейтинг: 0 / 0
12.11.2020, 09:21
    #40017425
Oleg_SQL
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(select/select)*100
и так спокойно все подставляют ноль в знаменатель )))
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / (select/select)*100 / 9 сообщений из 9, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]