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

Откуда:
Сообщений: 43
Добрый день, всем!
Запросы по отдельности работают, когда хочу объединить - не получаются
Не могу понять, как прописать их к одному источнику FROM...

Подскажите, пожалуйста, как этого достичь?

SELECT COUNT (DISTINCT BirthDate) [Уникальное кол-во записей1] FROM AdventureWorks2012.HumanResources.Employee WHERE BirthDate IN (SELECT BirthDate FROM AdventureWorks2012.HumanResources.Employee GROUP BY BirthDate HAVING count(*)>1) ,
	   COUNT(DISTINCT JobTitle) [Уникальное кол-во записей2] 
	   FROM AdventureWorks2012.HumanResources.Employee
12 янв 18, 13:47    [21101290]     Ответить | Цитировать Сообщить модератору
 Re: Вывести количество всех уникальных значений и уникальных повторяющихся значений  [new]
Дедушка
Member

Откуда: Город трёх революций
Сообщений: 5113
select
12 янв 18, 13:56    [21101332]     Ответить | Цитировать Сообщить модератору
 Re: Вывести количество всех уникальных значений и уникальных повторяющихся значений  [new]
anton6
Member

Откуда:
Сообщений: 43
SELECT COUNT (DISTINCT BirthDate) FROM AdventureWorks2012.HumanResources.Employee WHERE BirthDate IN (SELECT BirthDate FROM AdventureWorks2012.HumanResources.Employee GROUP BY BirthDate HAVING count(*)>1) --11


SELECT COUNT(DISTINCT JobTitle) [Уникальное кол-во записей] FROM AdventureWorks2012.HumanResources.Employee --67


ок

Пишу все через Select

SELECT COUNT(DISTINCT JobTitle) [Уникальное кол-во записей2], COUNT (DISTINCT BirthDate) [Уникальное кол-во записей1], FROM AdventureWorks2012.HumanResources.Employee WHERE BirthDate IN (SELECT BirthDate FROM AdventureWorks2012.HumanResources.Employee GROUP BY BirthDate HAVING count(*)>1)


Результат
14 11

А нужно

67 11


Вот этого все равно не пойму...
12 янв 18, 14:24    [21101551]     Ответить | Цитировать Сообщить модератору
 Re: Вывести количество всех уникальных значений и уникальных повторяющихся значений  [new]
Дедушка
Member

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

insert @t (id, p)
values
(1,'A'),
(2,'A'),
(3,'B'),
(4,'A'),
(5,'B'),
(6,'C')

select
(select count(distinct p) from @t) as [уникальные],
(select count(p) from (select p from @t group by p having count(p) > 1)q) as [повторяющиеся уникальные]
12 янв 18, 14:32    [21101621]     Ответить | Цитировать Сообщить модератору
 Re: Вывести количество всех уникальных значений и уникальных повторяющихся значений  [new]
Дедушка
Member

Откуда: Город трёх революций
Сообщений: 5113
или так, если важно именно "к одному источнику FROM"
select
	sum(case when c = r then 1 else 0 end),
	sum(case when c = r and c > 1 then 1 else 0 end)
from
	(
	select
		count(p)over(partition by p) as c,
		dense_rank()over(partition by p order by id) as r
	from
		@t
	)q
12 янв 18, 14:50    [21101759]     Ответить | Цитировать Сообщить модератору
 Re: Вывести количество всех уникальных значений и уникальных повторяющихся значений  [new]
anton6
Member

Откуда:
Сообщений: 43
Спасибо за науку, Дедушка)!
12 янв 18, 15:41    [21101963]     Ответить | Цитировать Сообщить модератору
 Re: Вывести количество всех уникальных значений и уникальных повторяющихся значений  [new]
anton6
Member

Откуда:
Сообщений: 43
Ну, по сути, было не важно... главное, чтобы взлетело и был результат...
12 янв 18, 15:43    [21101970]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить