SQL: Calcular la calificación basada en diferentes columnas y usarla como argumento.
Estoy tratando de calcular la calificación basada en una tabla que tiene 3 columnas con diferentes calificaciones que van de 1 a 5.
Quiero calcular el promedio de estos 3 valores y luego poder usar esto como argumento en consultas, por ejemplo:
Donde la Calificación > 3.5
En este momento tengo esto que me da el promedio para todos los proveedores
SELECT c.Nombre
,(SELECT CAST(AVG(rat) AS DECIMAL(5, 2))
FROM(
VALUES(b.Qty_Price),
(b.Quality),
(b.DeliveryTime)) A (rat)) AS Calificación
FROM Pedido a
JOIN Evaluación b ON b.ID_Evaluación = a.ID_Evaluación
JOIN Proveedor c ON c.NIF_Proveedor = a.NIF_Proveedor
Lo que me gustaría ahora es, por ejemplo, filtrar los proveedores que tienen más de 3 calificaciones, pero no sé cómo puedo hacerlo. Agradecería la ayuda de alguien.
davy.ai
Para filtrar los proveedores que tienen más de 3 valoraciones, puedes utilizar la función COUNT y una cláusula HAVING. La cláusula HAVING te permite filtrar el resultado de tu consulta por una condición que involucra una función de agregación (en este caso, COUNT). Aquí tienes un ejemplo de consulta:
En esta consulta, incluimos una columna COUNT(*) en la cláusula SELECT para contar el número de valoraciones para cada proveedor. También añadimos una cláusula GROUP BY para agrupar el resultado por el nombre del proveedor. Por último, agregamos una cláusula HAVING para filtrar el resultado y solo incluir proveedores con más de 3 valoraciones.