Chyba potrzebujesz sprzężenia, aby znaleźć wszystkie pary platform:
select
sp1.platform as platform1, sp2.platform as platform2, count(*) as numcommon
from
seriesonplatform AS sp1
JOIN seriesonplatform AS sp2 ON (sp1.seriesid = sp2.seriesid) AND (sp1.platform <> sp2.platform)
where
sp1.platform in ('BET','BET+')
AND sp2.platform in ('BET','BET+')
group by
sp1.platform,
sp2.platform
EDYCJA 2
Korzystając z powyższego zapytania, możesz znaleźć wspólny numer seryjny. Pozostało tylko znaleźć procent:
SELECT
platform1.platform, common.platform2, numcommon * 1.0 / platform1.seriescount AS show_on_platform2
FROM (
SELECT
platform, count(*) AS seriescount
FROM
seriesonplatform
GROUP BY
platform
) platform1
LEFT JOIN (
SELECT
sp1.platform as platform1, sp2.platform as platform2, count(*) as numcommon
FROM
seriesonplatform AS sp1
JOIN seriesonplatform AS sp2 ON (sp1.seriesid = sp2.seriesid) AND (sp1.platform <> sp2.platform)
GROUP BY
sp1.platform,
sp2.platform
) AS common ON platform1.platform = common.platform1
WHERE
numcommon * 1.0 / platform1.seriescount > 0.5
ORDER BY
platform1.platform, platform2