Я был бы очень признателен, если бы кто-то мог проверить мой SQL-запрос.Mysql Выбор строк с одинаковыми значениями в одном столбце и разными в другом
Для следующего набора данных:
MD5 UserPK CategoryPK
ADCDE 1 7
ADCDE 1 4
ADCDE 1 7
dffrf 1 7
dffrf 2 7
dffrf 2 6
dffrf 1 1
Я хотел бы, чтобы выбрать MD5 и CategoryPK, где существуют два или более строк с одинаковыми значениями MD5, идентичным CatgegoryPK и два или более различных значений UserPK.
Другими словами, я хотел бы знать MD5 и categoryPK всех записей, в которых два или более разных пользователя (UserPK) назначили одну и ту же категорию (UserPK) в тот же файл (Md5). Меня не интересуют записи, которые один и тот же пользователь присвоил этой категории несколько раз (если другой пользователь не присвоил этому типу той же категории).
Так из приведенных выше данных, я хотел бы быть возвращен только:
md5 CategoryPK
dffrf 7
Запрос я написал это:
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;
Это похоже на работу, но прежде чем начать использовать он в гневе, я был бы признателен за второе мнение в случае, если я что-то пропустил, или если есть лучший способ сделать это.
Благодаря
Такого рода вопрос может быть более подходящим для [Обзор Code] (http://codereview.stackexchange.com), чем StackOverflow. – eggyal