Счетчик SQL с разными и соответствующими двумя разными таблицами

У меня есть table1 и table2, и я пытаюсь подсчитать общее количество уникальных совпадений между ними для определенного столбца в каждом.

select count (distinct phone1) from table1,table2 where table1.phone1=table2.phone2;

Я думаю, что я довольно близок, но я получаю синтаксическую ошибку. Я использую различные, чтобы получить только уникальные совпадения, так как есть несколько повторяющихся совпадений.

Спасибо!

2 ответа

Решение

Ваш запрос выглядит правильно, вам просто нужно убрать пробел между счетчиком и открывающей скобкой, т.е. count(x) не count (x)

Попробуй это:

SELECT COUNT(phone)
FROM (
    SELECT phone1 AS phone
    FROM table1
    UNION
    SELECT phone2
    FROM table2
) a

UNION удалит дублирующиеся результаты, а затем вы просто УЧИТЫВАЕТЕ полученные записи.

Из документов:

UNION используется для объединения результатов нескольких операторов SELECT в один набор результатов.

Поведение по умолчанию для UNION состоит в том, что повторяющиеся строки удаляются из результата.

РЕДАКТИРОВАТЬ

Я неправильно понял вопрос. Я думал, ты хотел посчитать все разные числа.

Для этого ваш запрос был в значительной степени хорошо, начиная с пробела между COUNT и (

Другие вопросы по тегам