Seems to me that's not an UNION, but a JOIN:

SELECT o.old_count - n.new_count, o.old_sup, n.new_sup
FROM (

    SELECT new_sup, COUNT(new_sup)

    FROM public."Data"

    GROUP BY new_sup
) n
JOIN (

    SELECT old_sup, COUNT(old_sup)

    FROM public."Data"

    GROUP BY old_sup

) o ON o.old_sup = n.new_sup -- I'm gessing this is the join condition you
want

;


Regards,

El jue, 23 sept 2021 a las 15:37, Clive Swan (<clives...@gmail.com>)
escribió:

> Greetings,
>
> I have two separate queries that work individually, returning a count from
> each column.
>
>
>
> I want to subtract New(COUNT) from Old(Count)
>
> I get an error when trying to run UNION?
>
>
>
> I would appreciate any pointers.
>
>
>
>
>
> -- COUNT NEW SUPPLIER
>
> --
>
> SELECT new_sup,
>
> COUNT(new_sup)
>
> FROM public."Data"
>
> GROUP BY new_sup
>
>
>
> This returns
>
> Company_D 35
>
> Company_E 30
>
> Company_F 30
>
>
>
>
>
> SELECT newld_sup,
>
> COUNT(old_sup)
>
> FROM public."Data"
>
> GROUP BY old_sup
>
>
>
> This returns
>
> Company_A 1
>
> Company_B 2
>
> Company_D 35
>
> Company_E 30
>
> Company_F 30
>
>
>
>
>
>
>
> SELECT new_sup,  COUNT(new_sup) AS new_sup_count,
>
> old_sup,  COUNT(old_sup) AS old_sup_count
>
> FROM
>
> (
>
>                 SELECT
>
>     new_sup,  COUNT(new_sup) AS new_sup_count
>
>     FROM public."Data"
>
>     GROUP BY new_sup
>
>
>
>     UNION
>
>
>
>     SELECT
>
>     old_sup,  COUNT(old_sup) AS old_sup_count
>
>     FROM public."Data"
>
>     GROUP BY old_sup
>
>
>
>     new_sup_count - old_sup_count
>
>                 )
>
> GROUP BY new_sup
>

Reply via email to