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

Откуда: Киев
Сообщений: 204
подскажите, пожалуйста, как реализовать получение кол-ва уникального сочетания двух полей?

Для одного поля делаю вот так:
SELECT Count(DISTINCT IdC)  FROM links


А для двух полей ругается:
SELECT Count(DISTINCT(Id,IdC))  FROM links

Какой правильный синтаксис?
26 ноя 09, 16:22    [7983547]     Ответить | Цитировать Сообщить модератору
 Re: COUNT+DISTINCT  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
SELECT
  COUNT(*)
FROM
  (
  SELECT
    DISTINCT Id, IdC
  FROM
    SomeTable  
  ) Q
26 ноя 09, 16:27    [7983593]     Ответить | Цитировать Сообщить модератору
 Re: COUNT+DISTINCT  [new]
Ozzy-Osbourne
Member

Откуда: Balashikha
Сообщений: 139
Игаев,
для int-полей и при условии, что в таблице НЕ ОЧЕНЬ МНОГО строк, попробуйте так:

declare @t table(id int, idc int)
insert @t select 1234567890,1112223335
insert @t select 1234567890,1112223335
insert @t select 1234567890,1112223337
insert @t select 1234567890,1112223337
insert @t select 1234567890,1112223337
insert @t select 1234567890,1112223337
insert @t select 1234567890,1112223337
insert @t select 1234567891,1112223347
insert @t select 1234567891,1112223347
insert @t select 1234567891,1112223398
insert @t select 1234567891,1112223398
insert @t select 1234567891,1112223398
insert @t select 1234567892,1112223357
insert @t select 1234567892,1112223357
insert @t select 1234567892,1112223360
insert @t select 1234567892,1112223360
insert @t select 2147483647,2147483646
insert @t select 2147483647,2147483646
insert @t select 2147483647,2147483646
insert @t select 2147483647,2147483647
insert @t select 2147483647,2147483647
insert @t select 2147483647,2147483647

select cnt=count(distinct id*1000000000.+idc)
from @t
26 ноя 09, 16:54    [7983830]     Ответить | Цитировать Сообщить модератору
 Re: COUNT+DISTINCT  [new]
Дедушка
Member

Откуда: Город трёх революций
Сообщений: 5111
declare @t table(id int identity, id1 int, id2 int)

insert @t(id1,id2)
select 1,1
union all
select 1,1
union all
select 1,2
union all
select 2,2
union all
select 2,2

select top 1
dense_rank() over(order by id1,id2)
from
@t 
order by
id desc
--------------------------------------------------------------
Дьявол кроется в деталях.
26 ноя 09, 17:13    [7983960]     Ответить | Цитировать Сообщить модератору
 Re: COUNT+DISTINCT  [new]
Senya_L
Member

Откуда: Москва
Сообщений: 5381
Игаев,

Тынц
26 ноя 09, 19:16    [7984454]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить