es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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.

Tags:  , ,

Answer

  1. Avatar for 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:

    SELECT c.Name,
        (SELECT CAST(AVG(rat) AS DECIMAL(5, 2))
        FROM(
            VALUES(b.Qty_Price),
                (b.Quality),
                (b.DeliveryTime)) A (rat)) AS Rating,
        COUNT(*) AS NumRatings
    FROM Order a
    JOIN Evaluation b ON b.ID_Evaluation = a.ID_Evaluation 
    JOIN Supplier c ON c.NIF_Supplier = a.NIF_Supplier
    GROUP BY c.Name
    HAVING COUNT(*) > 3
    

    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.

Comments are closed.