У меня есть таблица (участники), которая имеет несколько столбцов, которые могут быть различны.
Два столбца, которые представляют особый интерес в этом запросе, это userID и programID
У меня здесь две части запроса.
- Я хочу получить список всех идентификаторов пользователей, которые встречаются в этой таблице более одного раза. Как мне это сделать?
Я хочу иметь возможность получить счетчик всех идентификаторов программ, в которых один и тот же идентификатор пользователя присутствует в нескольких идентификаторах программ. (Т.е. количество программ, в которых одинаковый идентификатор пользователя появляется в 2 программах, количество программ, в которых одинаковый идентификатор пользователя появляется в 3 программах и т. Д.)
Например:
programID: prog1
userID: uid1
userID: uid3
userID: uid12
programID: prog2
userID: uid3
userID: uid5
userID: uid14
userID: uid27
programID: prog3
userID: uid3
userID: uid7
userID: uid14
userID: uid30
programID: prog4
userID: uid1
Ожидаемые результаты:
userID count = 2; программы = 3
userID count = 3; программы = 3
Может кто-нибудь помочь мне с этим.
мой текущий код для вопроса 1:
SELECT
WPP.USERID,
WPI.EMAIL,
WPI.FIRSTNAME,
WPI.LASTNAME,
WPI.INSTITUTION
FROM WEBPROGRAMPARTICIPANTS WPP
INNER JOIN WEBPERSONALINFO WPI
ON WPP.USERID = WPI.USERID
INNER JOIN WEBPROGRAMS WP
ON WPP.PROGRAMCODE = WP.PROGRAMCODE
WHERE
WP.PROGRAMTYPE IN ('1','2','3','4','5','6', '9', '10')
GROUP BY
WPP.USERID,
WPI.EMAIL,
WPI.FIRSTNAME,
WPI.LASTNAME,
WPI.INSTITUTION
HAVING COUNT(WPP.USERID) > 1
ORDER BY WPI.EMAIL