powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / COUNT с условием
6 сообщений из 6, страница 1 из 1
COUNT с условием
    #38766553
sraider
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть запрос
Код: sql
1.
2.
3.
4.
5.
6.
select x,
    count(*) cnt,
    sum(a * b) ab,
    sum(a) a
from tbl
group by x



Как можно в этом же запросе посчитать количество записей, удовлетворяющих определенному условию? (с учетом группировки)
На ум приходит только
Код: sql
1.
    sum(case when условие then 1 else 0 end)



ps. sql server 2005+
...
Рейтинг: 0 / 0
COUNT с условием
    #38766562
Фотография Shakill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sraider, нормальный вариант. можно else 0 убрать и sum заменить на count, например. но это без разницы
...
Рейтинг: 0 / 0
COUNT с условием
    #38766579
sraider
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shakill, спасибо

Код: sql
1.
  count(case when условие then 1 end)
...
Рейтинг: 0 / 0
COUNT с условием
    #38766622
Фотография Mind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sraider,

И чем же второй вариант лучше? Учитывая, что он генерит предупреждение:

Код: plaintext
Warning: Null value is eliminated by an aggregate or other SET operation.
...
Рейтинг: 0 / 0
COUNT с условием
    #38766633
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mindsraider,

И чем же второй вариант лучше? Учитывая, что он генерит предупреждение:

Код: plaintext
Warning: Null value is eliminated by an aggregate or other SET operation.
Дык совсем свежий срач спор с репрессиями на эту тему совсем рядом: http://www.sql.ru/forum/1118771/sql-zapros-poluchit-summu-polozhitelnyh-i-summu-otricatelnyh-znacheniy
...
Рейтинг: 0 / 0
COUNT с условием
    #38766686
Фотография Shakill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mindsraider,

И чем же второй вариант лучше? Учитывая, что он генерит предупреждение:

Код: plaintext
Warning: Null value is eliminated by an aggregate or other SET operation.

тем что COUNT, на мой взгляд, более точно отражает смысл запроса
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / COUNT с условием
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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