誰かが私のSQLクエリを検証できるのであれば、本当にありがたいです。以下のデータセットについてMysql 1つの列に同じ値を持ち、別の列で異なる行を選択してください
:
MD5 UserPK CategoryPK
ADCDE 1 7
ADCDE 1 4
ADCDE 1 7
dffrf 1 7
dffrf 2 7
dffrf 2 6
dffrf 1 1
私は2つの以上の行が同一のMD5値を、同じCatgegoryPK及び二つ以上の異なるUserPK値で存在MD5とCategoryPKを選択したいと思います。
つまり、2人以上の異なるユーザー(UserPK)が同じカテゴリ(UserPK)を同じファイル(Md5)に割り当てたすべてのレコードのMD5とcategoryPKを知りたいと思います。同じユーザーがそのカテゴリに複数回割り当てたレコードには興味がありません(異なるユーザーが同じカテゴリをそのファイルに割り当てていない限り)。
したがって、上記のデータから、私は返されるしたいと思います:それは動作するようです
SELECT md5,
count(md5),
count(distinct categorypk) as cntcat,
count(distinct userpk) as cntpk
FROM Hash
group by md5 having count(md5) > 1
and cntpk > 1
and cntcat = 1;
が、私は使用を開始する前に:私が書いたクエリがある
md5 CategoryPK
dffrf 7
それは怒っている、私は何かを逃した場合やそれを行うより良い方法がある場合には、二番目の意見に感謝します。
おかげ
質問のこの種は、StackOverflowのより[コードレビュー](http://codereview.stackexchange.com)のためのより適切な場合があります。 – eggyal