mysql - 查找表中没有关系的行

标签 mysql sql

我有一个表,其中 A 列和 B 列具有某种关系。 该关系的定义规则是:A 列为 X 的所有行中 B 列的大多数为 Y。

表格可能如下所示:

| columnA | columnB  |
+---------+----------+
|  Katze  |   Cat    |
|  Katze  |   Cat    |
|  Katze  |   hkjhkj |
|  Katze  |   Cat    |
|  Hund   |   Dog    |
|  Hund   |   Dog    |
|  Hund   |   werw   |

如何在这里找到不适合的第 3 行和第 7 行?

最佳答案

您可以做的是计算每对存在的次数,如下所示:

SELECT columnA, columnB, COUNT(*) AS numAppearances
FROM myTable
GROUP BY columnA, columnB;

如果您只想查看出现一次的行,请使用 HAVING 子句来获取这些行:

SELECT columnA, columnB, COUNT(*) AS numAppearances
FROM myTable
GROUP BY columnA, columnB
HAVING COUNT(*) = 1;

这是一个SQL Fiddle示例。

关于mysql - 查找表中没有关系的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29953145/

相关文章:

php - 在一台机器上连接 XAMPP 到 microsoft sql server management studio 2012

javascript - mySQL TIMEDIFF 查询 JS var - 由于冒号而出错

MySQL表结构问题

php - CodeIgniter 以错误的顺序执行数据库查询(可能是并行的?)

mysql - 甚至显示学期时出现此错误

Php mysql 查询显示不应该显示的数据

sql - Postgres 查询 10 亿行时非常慢

mysql - 如何在 mySQL 中定义自定义 ORDER BY 顺序

SQL 查询从列表中获取最高 "n"分数

SQL Server 2008 BETWEEN 函数