2

SQL Server 2005 には、特定の個人 ID 番号に関連付けられた個別のファイル名を持つテーブルがあります。個人 ID の数が 1 より大きいすべてのファイル名を取得したいと考えています。これは私が行っていることですが、0 レコードを取得しています。

SELECT [file_name], per_ID
FROM mytable
GROUP BY [file_name], per_ID
HAVING COUNT(per_ID) > 1
ORDER BY per_ID, [file_name] ASC

私も同じ結果で次のことを試しました:

SELECT [file_name], per_ID, COUNT(per_ID)
FROM mytable
GROUP BY [file_name],per_ID
HAVING COUNT(per_ID) > 1
ORDER BY per_ID, [file_name] ASC 

誰かが私が間違っていることを私に示すことができれば、私はそれを感謝します.

テーブル構造とデータの例は次のとおりです。

file_name | per_ID
9995573157  1111
5996110978  2222
5996111208  3333
8996693000  3333
8996693215  4444
7997617867  5555
9997335346  5555

私が探している結果は、per_ID 3333 と 5555 のファイル名です。

5996111208  
8996693000
7997617867  
9997335346  
4

2 に答える 2

1

では、これを 2 つの手順で行うだけです。最初に、複数回出現する per_id のリストを取得してから、それらの per_id に対応する file_name のリストを取得します。

select file_name
from mytable
where per_id in (
    select per_id from mytable group by per_id having count(*) > 1
)
于 2013-10-11T18:16:46.320 に答える
0

個人 ID はキーのように聞こえ、それによるグループ化は常に個別のグループを返します。ファイル名だけでグループ分けしてみませんか?残りのクエリは同じままです。

于 2013-10-11T18:22:23.867 に答える