sirve sacar que porcentaje para iva incrementar funcion formato calcular sql postgresql group-by

sacar - incrementar porcentaje sql



Cálculo de porcentajes con la consulta GROUP BY (3)

Alternativamente, puedes hacer el camino de la vieja escuela, posiblemente más fácil de asimilar:

select item.User as User , item.Rating as Rating , item.N as N , (100.0 * item.N) / total.N as Pct count(*) from ( select User, Rating , count(*) as N from Results group by User , Rating ) usr join ( select User , count(*) as N from Results group by User ) total on total.User = usr.User order by 1,2

¡Aclamaciones!

Tengo una mesa con 3 columnas que se ve así:

File User Rating (1-5) ------------------------------ 00001 1 3 00002 1 4 00003 2 2 00004 3 5 00005 4 3 00005 3 2 00006 2 3 Etc.

Quiero generar una consulta que muestre lo siguiente (para cada usuario y calificación, muestre la cantidad de archivos y el porcentaje de archivos):

User Rating Count Percentage ----------------------------------- 1 1 3 .18 1 2 6 .35 1 3 8 .47 2 5 12 .75 2 3 4 .25

Con Postgresql, sé cómo crear una consulta que incluya las primeras 3 columnas con la siguiente consulta, pero no puedo averiguar cómo calcular el porcentaje dentro del GROUP BY:

SELECT User, Rating, Count(*) FROM Results GROUP BY User, Rating ORDER BY User, Rating

Aquí quiero que el cálculo del porcentaje se aplique a cada usuario / grupo de clasificación.



WITH t1 AS (SELECT User, Rating, Count(*) AS n FROM your_table GROUP BY User, Rating) SELECT User, Rating, n, (0.0+n)/(COUNT(*) OVER (PARTITION BY User)) -- no integer divide! FROM t1;

O

SELECT User, Rating, Count(*) OVER w_user_rating AS n, (0.0+Count(*) OVER w_user_rating)/(Count(*) OVER (PARTITION BY User)) AS pct FROM your_table WINDOW w_user_rating AS (PARTITION BY User, Rating);

Vería si uno de estos u otros proporciona un mejor plan de consulta con la herramienta adecuada para su RDBMS.