DISTINCT
-
使用 DISTINCT 检查是否有任何客户与多个区域相关联?
下面的两个查询产生了相同的行数(351 行),因此我们知道每个客户仅与一个区域相关联。如果每个客户与多个区域相关联,则第一个查询返回的行数应该比第二个查询的多。SELECT DISTINCT a.id, r.id, a.name, r.name FROM accounts a JOIN sales_reps s ON s.id = a.sales_rep_id JOIN region r ON r.id = s.region_id;
and
SELECT DISTINCT id, name FROM accounts;
-
有没有销售代表要处理多个客户?
实际上,所有销售代表都要处理多个客户。销售代表处理的最少客户数量是 3 个。有 50 个销售代表,他们都有多个客户。在第二个查询中使用 DISTINCT 确保包含了第一个查询中的所有销售代表。SELECT s.id, s.name, COUNT(*) num_accounts FROM accounts a JOIN sales_reps s ON s.id = a.sales_rep_id GROUP BY s.id, s.name ORDER BY num_accounts;
and
SELECT DISTINCT id, name FROM sales_reps;