繁体   English   中英

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

[英]SQL Return All Rows Where 2 Values Are Repeated

我确定这个问题已经回答了,但是我找不到它,或者答案太复杂了。 我是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

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

基本上,这是一个两步过程。 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM