簡體   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