mysql - SQL 返回 2 个值重复的所有行

标签 mysql sql

我确信这个问题已经得到解答,但我找不到它或者答案太复杂。我是 SQL 新手,不知道如何概括地表达这一点。

我在设备上安装了软件的 mySQL 数据库。我提取所有数据的查询有更多字段和更多连接,但为了简洁起见,我只包含了一些。我需要添加另一个维度来创建一份报告,列出设备安装多个同一产品系列软件的每种情况。

sample

现在我有类似这样的代码,但它没有做我需要的事情。我已经看到了一些关于 exists 的信息,但是这些示例没有考虑多重连接,所以语法让我无法理解。帮忙?

select
devices.name,
sw_inventory.product, 
products.family_name,
sw_inventory.ignore_usage,

from sw_inventory

inner join products
on sw_inventory.product=products.product_name

inner join devices
on sw_inventory.device_name=devices.name

where sw_inventory.ignore=0

group by devices.name, products.family_name

最佳答案

关于这个主题有很多答案,但我绝对理解并不总是了解术语。您正在寻找如何查找重复值。

基本上这是一个两步过程。 1 找到重复项 2 如果需要,将其与原始记录关联起来。请注意,第二部分是可选的。

因此,要从字面上查找您提供的查询的所有重复项

group by语句后添加HAVING COUNT(*) > 1。如果您想知道有多少重复项,请添加计算列来对它们进行计数。

select
devices.name,
sw_inventory.product, 
products.family_name,
sw_inventory.ignore_usage,
NumberOfDuplicates = COUNT(*)
from sw_inventory

inner join products
on sw_inventory.product=products.product_name

inner join devices
on sw_inventory.device_name=devices.name

where sw_inventory.ignore=0

group by devices.name, products.family_name

HAVING COUNT(*) > 1

关于mysql - SQL 返回 2 个值重复的所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37867817/

相关文章:

python - MySQL插入字符串,python插入为单个字符

sql - 使用SQL Loader导入csv文件到表中[但是大号。列数]

mysql - 编写更多更好的 SQL

php - 找到 .ini 文件但内容丢失(parse_ini_file() 不工作)

php - 什么时候使用 PDO::query?

mysql - 使用mysqldump导出与旧版本兼容的数据

sql - MS Access - 在 VBA 中按名称执行保存的查询

mysql - SQL - LEFT JOIN 多个条件 - 优先级

mysql:如何创建 View 显示表多模式

php - 修改注册后端Prestashop