查询具有非不同列值的行
在 SQL 中,常见的任务是检索特定列的值为不明显。这对于识别重复数据或检测异常非常有用。
示例场景
考虑一个名为 Customers 的表,其中包含以下数据:
CustomerName | EmailAddress |
---|---|
Aaron | [email protected] |
Christy | [email protected] |
Jason | [email protected] |
Eric | [email protected] |
John | [email protected] |
要检索 EmailAddress 列不重复的所有行,我们可以使用以下命令查询:
SELECT EmailAddress, CustomerName FROM Customers WHERE EmailAddress IN (SELECT EmailAddress FROM Customers GROUP BY EmailAddress HAVING COUNT(*) > 1)
解释
IN 子句过滤在子查询中找到的 EmailAddress 值。子查询对所有 EmailAddress 值进行分组并计算每个值的出现次数。然后,HAVING 子句仅选择出现多次的组(即非不同值)。
通过使用这种方法,我们可以有效地识别并返回 EmailAddress 列不明显的行。在大多数情况下,此方法比使用 EXISTS 运算符要快得多。
以上是如何在 SQL 中查找和检索具有非唯一列值的行?的详细内容。更多信息请关注PHP中文网其他相关文章!