我现在有一个customers表,其中有重复的customers。我想选择一个独特的客户名单,没有重复的家庭电话或手机。
因此,如果任何客户与另一个客户拥有相同的家庭电话或手机,则我不想从查询返回该客户。
有一个警告——如果家庭电话或手机是空的,那么我显然不想把它算在反重复逻辑中,因为有些客户只有家庭电话,或者只有手机。
这是我当前的查询,它返回家庭电话和手机的唯一行。
SELECT id, firstname, lastname, homephone, cellphone, city, state, zip,
country, FROM customers WHERE (homephone != "" OR cellphone != "")
GROUP BY homephone, cellphone
有什么想法吗?谢谢。
最佳答案
你必须把所有的电话号码集中到一个评价中,然后按这个排序/分组。
试试这个:
SELECT id, firstname, lastname, homephone, cellphone, city, state, zip, country
FROM customers
WHERE homephone != '' OR cellphone != ''
GROUP BY case when homephone = '' then cellphone else homephone end
它将为“homephone,but if blank then mobile”的每个唯一值找到第一行