Выберите количество идентификаторов в более чем одной таблице (из трех таблиц) - PullRequest
0 голосов
/ 14 мая 2019

Мне нужен счет этого:

select distinct ID
from (
    select ID from A 
    union all
    select ID from B 
    union all
    select ID from C 
) ids
GROUP BY ID HAVING COUNT(*) > 1;

но я понятия не имею, как это сделать.

Ответы [ 2 ]

1 голос
/ 14 мая 2019

Используйте подзапрос:

select count(*)
from (select ID
      from (select ID from A 
            union all
            select ID from B 
            union all
            select ID from C 
           ) ids
      group by ID
      having count(*) > 1
     ) i;

SELECT DISTINCT почти никогда не требуется с GROUP BY и определенно не в этом случае.

0 голосов
/ 15 мая 2019

Вы просто хотите найти идентификатор, который появляется еще 2 раза в таблице A, B, C, SQL ниже:

select count(1) from (
select
    id,
    count(1)
from
    (
    select ID from A 
    union all
    select ID from B 
    union all
    select ID from C 
   ) 
group by id having(count(1)>1)
) tmp
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...