sql >> Databáze >  >> RDS >> PostgreSQL

PostgreSQL najde společnou kombinaci párů ve stejném sloupci

Myslím, že k nalezení všech párů platforem potřebujete spojení:

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

UPRAVIT 2

Pomocí výše uvedeného dotazu můžete najít společné sériové číslo. Zbývá najít procento:

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



  1. SQL vybere pouze řádky s maximální hodnotou ve sloupci

  2. jak načíst obrázek z databáze mysql pomocí java servletu a zobrazit jej v HTML img tagu?

  3. Co může způsobit občasné chyby ORA-12519 (TNS:nebyla nalezena žádná vhodná obsluha).

  4. nainstalujte balíčky z docker-compose.yml do kontejneru docker