mysql - 尝试使用 mysql 排除某些
问题描述
我对 mySQL 相当陌生。我有一个表应该在标记为“b”或“s”的字段之间互斥,但它们不是。tn 列中的某些字段具有“b”,另一个字段具有“s”,但它们都具有相同的“tn”。这是我正在等待有人解决的数据问题。同时,我需要从我的“b”查询中排除任何“tn”也将在类似的“s”查询中的项目。我的查询中只有“b”,如何与“s”比较并排除交叉错误?此外,我想排除任何“tn”计数超过 2 的“b”。我知道他们需要修复数据,但是当我等待几个月的时间时,我想获得一组数据开始,那是干净的。
表 hardware_data 如下所示:
tn hardware_item shelf slot port type model
12345678 abcdefg 1 1 1 b Model1
23456789 bcdefgh 1 2 3 b Model1
23456789 bcdefgh 1 2 3 s Model1
34567890 cdefghi 1 1 4 s Model1
12345678 abcdefg 1 1 4 b Model1
12345678 abcdefg 1 1 3 b Model1
45678901 defghij 1 1 2 b Model1
45678901 defghij 1 1 3 b Model1
因此,在上述数据中,我将使用以下查询:
select hardware_item, tn, shelf, slot, port
from accessInventory.hardware_data
WHERE model= 'Model1'
AND type = 'b'
AND CHAR_LENGTH(tn)>3
AND tn*1 = tn
LIMIT 100000;
它返回这个数据集
tn hardware_item shelf slot port type model
45678901 defghij 1 1 2 b Model1
45678901 defghij 1 1 3 b Model1
23456789 bcdefgh 1 2 3 b Model1
12345678 abcdefg 1 1 4 b Model1
12345678 abcdefg 1 1 3 b Model1
12345678 abcdefg 1 1 1 b Model1
但我希望它排除重复计数“tn”超过 2 的那些,如 12345678 ,以及与“s”类别交叉的那些,如 23456789。我什至不知道从哪里开始交叉一,我对 3 排除的计数不起作用,因为它正在比较返回的整行,而不仅仅是“tn”。任何帮助将不胜感激。
我当然已经用谷歌搜索了它,但是我没有找到任何我需要的排除项,而且我还没有找到这个排除常见行项目计数超过值的特定案例。
注意,不能使用“Group By”,因为在“b”类别中有 2 个 tn 匹配是有效的。
解决方案
推荐阅读
- swift - 使用加速器标准化视差图像
- docker - “docker push”在带有 windows runner 的 gitlabci 中需要 1 个参数
- excel - 无法获取 PivotTable 类的 PivotFields 属性 - 不确定我做错了什么
- css - 在测试环境中将测试数据属性设置为反应应用程序中的锚点
- odoo - 当我使用 studio odoo 13 创建一个新应用程序时,视图和主模块是在哪里生成的?
- javascript - 如何使用 javascript execCommand 创建富文本编辑器?
- performance - 哪个微处理器的指令延迟最低?
- data-visualization - 在桌面桌面上打开工作簿时出现奇怪的错误
- javascript - 如何使用该文档中的另一个变量更改文档中变量的值?
- arrays - 如何使用 mongoose 将数组中的每个项目保存为文档?如果任何文档与数组中的项目匹配,则不应创建它