Re: SQL Help -
08-19-2007
, 01:39 PM
I'm not so well in English. So, I may be some misunderstandig of your
requirement.
(It will be better to show sample data and expected result by you.)
This may be an answer, if I understand exactly your requirements.
WITH shared(employeeid, groupid, number_of_shared) AS (
SELECT E.employeeid, M.groupid, COUNT(M.employeeid)
FROM employees E
INNER JOIN
groupmembership M
ON E.employeeid = M.employeeid
AND E.employeeid <> M.employeeid
GROUP BY E.employeeid, M.groupid
)
SELECT S.*
FROM shared S
WHERE (employeeid, groupid, number_of_shared) IN
(SELECT employeeid, groupid, number_of_shared
FROM shared
WHERE number_of_shared =
(SELECT MAX(number_of_shared)
FROM shared
)
)
; |