powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / (select/select)*100
9 сообщений из 9, страница 1 из 1
(select/select)*100
    #40016981
Caxa_ASS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет.

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

Код: 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
(select/select)*100
    #40016985
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
(select/select)*100
    #40016987
Caxa_ASS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
komrad, спасибо за ответ, но к сожалению нет, на выходе получаю значение 100, что есть не верным результатом
...
Рейтинг: 0 / 0
(select/select)*100
    #40016989
Caxa_ASS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
(select/select)*100
    #40016996
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Caxa_ASS,

% не вычисляется цедочисленно, надо использовать явное или неявное приведение к числу с точкой.
...
Рейтинг: 0 / 0
(select/select)*100
    #40017004
Caxa_ASS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосов, 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
(select/select)*100
    #40017028
Zelius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
(select/select)*100
    #40017155
Caxa_ASS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zelius, тоже работает, спасибо :)
...
Рейтинг: 0 / 0
(select/select)*100
    #40017425
Oleg_SQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
и так спокойно все подставляют ноль в знаменатель )))
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / (select/select)*100
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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