Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как подсчитать COUNT ?  [new]
defragmentator
Member

Откуда:
Сообщений: 20504
SELECT COUNT(DISTINCT 1, 2)


Есть DISTINCT из нескольких выражений. Нужно подсчитать COUNT.
Как это проще сделать?
31 мар 14, 13:09    [15810793]     Ответить | Цитировать Сообщить модератору
 Re: Как подсчитать COUNT ?  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7868
Группировка, счетчик.
31 мар 14, 13:35    [15810997]     Ответить | Цитировать Сообщить модератору
 Re: Как подсчитать COUNT ?  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7868
+ Можно OVER использовать. Задача неясна.
31 мар 14, 13:35    [15811004]     Ответить | Цитировать Сообщить модератору
 Re: Как подсчитать COUNT ?  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2421
defragmentator,

count(*) ... group by 1, 2
31 мар 14, 13:41    [15811039]     Ответить | Цитировать Сообщить модератору
 Re: Как подсчитать COUNT ?  [new]
defragmentator
Member

Откуда:
Сообщений: 20504
Группировка + счётчик - получается подсчёт различных групировок. То есть опять - таки таблица.
Мне же нужно количество различных кортежей.

DECLARE @T1 table (A1 int, A2 int);
INSERT @T1 VALUES (1, 2);
INSERT @T1 VALUES (1, 2);
INSERT @T1 VALUES (1, 1);

SELECT COUNT(*) FROM @T1 GROUP BY A1, A2;


Получаем
1
2


Мне же нужно 2
31 мар 14, 14:19    [15811286]     Ответить | Цитировать Сообщить модератору
 Re: Как подсчитать COUNT ?  [new]
Glory
Member

Откуда:
Сообщений: 104760
defragmentator
Группировка + счётчик - получается подсчёт различных групировок. То есть опять - таки таблица.

Вы знаете, что такое вложенный запрос ?
31 мар 14, 14:22    [15811303]     Ответить | Цитировать Сообщить модератору
 Re: Как подсчитать COUNT ?  [new]
defragmentator
Member

Откуда:
Сообщений: 20504
Glory,

я знаю, но с каунтом он не катит
31 мар 14, 14:27    [15811338]     Ответить | Цитировать Сообщить модератору
 Re: Как подсчитать COUNT ?  [new]
Glory
Member

Откуда:
Сообщений: 104760
defragmentator
я знаю, но с каунтом он не катит

Мда. Катить не надо. Надо писать корректно
select count(*)
from (SELECT 1 FROM @T1 GROUP BY A1, A2) a
31 мар 14, 14:30    [15811365]     Ответить | Цитировать Сообщить модератору
 Re: Как подсчитать COUNT ?  [new]
invm
Member

Откуда: Москва
Сообщений: 9396
defragmentator
Мне же нужно 2
DECLARE @T1 table (A1 int, A2 int);
INSERT @T1 VALUES (1, 2);
INSERT @T1 VALUES (1, 2);
INSERT @T1 VALUES (1, 1);

with x as
(
 select distinct A1, A2 from @T1
)
SELECT COUNT(*) FROM x;
31 мар 14, 14:32    [15811372]     Ответить | Цитировать Сообщить модератору
 Re: Как подсчитать COUNT ?  [new]
iap
Member

Откуда: Москва
Сообщений: 46999
defragmentator
Glory,

я знаю, но с каунтом он не катит
SELECT COUNT(*) FROM(SELECT DISTINCT * FROM @T1)T;
31 мар 14, 14:33    [15811379]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить