我有table1和table2,我正在尝试计算每个中特定列的唯一匹配总数。
select count (distinct phone1) from table1,table2 where table1.phone1=table2.phone2;
我认为我非常接近,但我一直收到语法错误。我使用distinct来获得唯一的匹配,因为有几个重复的匹配。
谢谢!
答案 0 :(得分:2)
您的查询看起来是正确的,您只需要删除count和左括号之间的空格,即count(x)
而不是count (x)
答案 1 :(得分:0)
试试这个:
SELECT COUNT(phone)
FROM (
SELECT phone1 AS phone
FROM table1
UNION
SELECT phone2
FROM table2
) a
UNION将消除重复的结果,然后您只需计算结果记录。
来自docs:
UNION用于组合多个SELECT语句的结果 到一个结果集。
UNION的默认行为是从中删除重复的行 结果。
我误解了这个问题。我以为你想要计算所有不同的数字。
为此,你的查询非常好,从COUNT和(
之间的空格开始计算