From: | Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> |
---|---|
To: | Michel Vega Fuenzalida <michelvf(at)infomed(dot)sld(dot)cu> |
Cc: | pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Cálculo de porciento SOLUCIONADO |
Date: | 2011-08-30 20:26:32 |
Message-ID: | 1314735881-sup-2140@alvh.no-ip.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Excerpts from Michel Vega Fuenzalida's message of mar ago 30 16:09:49 -0300 2011:
> Soy nuevo en SQL y esta fue la solución que encontré para calcular
> porciento de los datos mostrados
Hay un error conceptual aquí, que es que estás usando un literal
'tabla1.campo1' para contar en vez del valor del campo. Quita las
comillas. En caso de que haya valores nulos, el resultado será
distinto AFAIR.
Lo otro es que esto se puede hacer en forma un poco más sensata (sin
poner un subselect en el from) con una función de ventana deslizante.
> SELECT
> count('tabla1.campo1') AS contar,
> tabla2.campo2,
> Round(Count('contar')*100/total::numeric, 2) AS "%"
> FROM
> esquema.tabla1 INNER JOIN esquema.tabla2 ON (tabla1.campo1 = tabla2.campo1),
> (SELECT Count('contar') AS total FROM esequema.tabla1 WHERE campo3 = 3 AS x
> WHERE
> campo3 = 3
> GROUP BY
> tabla1.campo2
> total
> ORDER BY
> tabla1.campo2
--
Álvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2011-08-30 20:31:48 | Re: Problema uso de indices... |
Previous Message | Lazaro Rubén García Martinez | 2011-08-30 20:06:48 | RE: doble INNER JOIN |