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

Jak seskupit výsledky podle počtu vztahů

Nemám vaše ukázková data, ale právě jsem zde znovu vytvořil scénář s jedinou tabulkou: Ukázka

Můžete se LEFT JOIN počítá se pomocí generate_series() a získat nuly pro chybějící počet n členství. Pokud nechcete nuly, stačí použít druhý dotaz.

Dotaz 1

WITH c
AS (
    SELECT profile_id
        ,count(*) ct
    FROM Table1
    GROUP BY profile_id
    )
    ,m
AS (
    SELECT MAX(ct) AS max_ct
    FROM c
    )
SELECT n
    ,COUNT(c.profile_id)
FROM m
CROSS JOIN generate_series(1, m.max_ct) AS i(n)
LEFT JOIN c ON c.ct = i.n
GROUP BY n
ORDER BY n;

Dotaz2

WITH c
AS (
    SELECT profile_id
        ,count(*) ct
    FROM Table1
    GROUP BY profile_id
    )
SELECT ct
      ,COUNT(*)
 FROM c 
GROUP BY ct
ORDER BY ct;



  1. Visual Studio 2015 SQL Server Data Tools chybí možnost Přidat tabulku

  2. přidejte názvy pro nahrané obrázky v nodejs,mysql a reagujte

  3. jak se připojit k serveru mysql pomocí příkazového řádku:chyba

  4. Jak vytvářet a spouštět uložené funkce a procedury MySQL