我确信这个问题已经得到解答,但我无法找到它,或者答案太复杂了。我是SQL新手,我不确定如何一言不发。
我在设备上安装了mySQL数据库软件。我提取所有数据的查询包含更多字段和更多连接,但为了简洁起见,我只包含了一些。我需要添加另一个维度来创建一个报告,该报告列出了设备具有来自同一产品系列的多个软件安装的所有情况。
现在我的代码有点像这样,它没有做我需要的。我在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
答案 0 :(得分:1)
关于这个主题有很多答案,但我绝对明白并不总是知道术语。您正在寻找如何查找重复值。
基本上这是一个两步过程。 1找到重复项2,如果你想要那些,则与原始记录相关。注意第二部分是可选的。
所以要从字面上找到你提供的查询的所有重复
在HAVING COUNT(*) > 1
语句后添加group by
。如果您想知道有多少重复项添加一个计算列来计算它们。
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