MySQL - Top articulos

 
Vista:

Top articulos

Publicado por BrutusBur (3 intervenciones) el 22/11/2021 21:32:02
Hola!
Me gustaria hacer un listado con el top de articulos mejor votados.
Tengo una tabla llamada "aritculos", en esta tabla tengo 2 campos llamados "positivos" y "negativos", los uso para la votacion, se suma +1 cada vez que votan (ya sea el voto positivo o negativo).

He estado investigando por google y creo que podria conseguir el resultado utilizando COUNT y AS TOTAL??
Pero no estoy seguro.

Alguien me podria echar una mano?

Un saludo
gracias!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Top articulos

Publicado por Martha (80 intervenciones) el 22/11/2021 22:22:09
Siguiendo tus instrucciones he hecho esta tabla:

1
2
3
4
creaete table articulos(
articulo varchar(50),
positivos integer default null,
negativos integer default null);

porque entiendo que si votas positivo, el campo "negativos" de ese registro es null.

siguiendo tus premisas (usar COUNT en lugar de SUM) he hecho esto para conseguir los cinco "mas votados":

1
2
3
4
5
SELECT articulo, COUNT(positivos)-COUNT(negativos) as TOTAL
FROM articulos
GROUP BY articulo
ORDER BY TOTAL DESC
LIMIT 5;

Espero que te sea de utilidad.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Top articulos

Publicado por BrutusBur (3 intervenciones) el 22/11/2021 23:19:21
Hola Marha
Muchas gracias por tu respuesta.
Creo que algo no funciona bien, seguramente no he explicado muy bien como es la tabla.
Dejo un ejemplo.

1
2
3
4
5
6
7
id    articulo   positivos   negativos
1     libro1        10          2
2     libro2        5           11
3     libro3        6           1
4     libro4        1           1
5     libro5        7           4
6     libro6        6           5


Me gustaria saber la mejor votacion obteniendo algo asi como una media entre los positivos y negativos?

un saludo
gracias :)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Top articulos

Publicado por BrutusBur (3 intervenciones) el 24/11/2021 13:40:51
Hola de nuevo!
He conseguido el resultado utlizando SUM, restando los votos positivos y negativos que tiene un libro y diviendolo entre el total de votos positivos y negativos.
Funciona correctamente pero nose si será la mejor manera o hay una solución mejor.

1
2
3
4
SELECT *, SUM(positivos-negativos) / SUM(positivos+negativos) AS Media
FROM articulos
GROUP BY articulo
ORDER BY Media DESC

Un saludo
gracias!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Top articulos

Publicado por Martha (80 intervenciones) el 28/11/2021 10:50:33
Si es la solución es la "mejor" solución.

Fuera de bromas.

COUNT está para contar registros. Por ejemplo ¿Cuantos clientes hemos ganado este año y cuantos hemos perdido?. Los clientes tienen un identificador único, cuentas ese identificador y obtienes la respuesta.

Creía que era un ejercicio de clase, en el que algunas veces los profesores ponen a prueba a los alumnos, sabiendo que se puede hacer de otra forma.

Cuando tengas campos numéricos, usa SUM.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar