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.

¿Cómo obtener el promedio en SQL?

¿Cómo puedo seleccionar todos los productos, su nombre, el promedio de calificaciones con estrellas y la fecha de la calificación más reciente? Los resultados deben estar en orden descendente según el promedio de calificaciones con estrellas.

Esta es la consulta que he escrito hasta ahora:

SELECT product_name, avg_star_rating, recent_rating_date
FROM product
ORDER BY avg_star_rating DESC

y estas son las tablas:

CREATE TABLE product
(prod_id varchar(15),
product_name varchar(30),
product_price double precision,
product_manufacturer varchar(30),
primary key (prod_id)
)
CREATE TABLE customer
(cust_id varchar(15),
customer_name varchar (30),
customer_adress varchar (30),
primary key (cust_id)
)
CREATE TABLE rating
(prod_id,
cust_id,
rating_date date not null,
rating_stars int (5),
primary key (rating_date),
foreign key (prod_id) REFERENCES Products(prod_id),
foreign key (cust_id) REFERENCES customer(cust_id)
)
CREATE TABLE sale
(sale_id,
prod_id,
cust_id,
sale_quantity int,
sale_cost double precision,
primary key (sale_id),
foreign key (prod_id) REFERENCES Products(prod_id),
foreign key (cust_id) REFERENCES customer(cust_id)
)
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para seleccionar todos los productos, su nombre, la calificación promedio de estrellas y la fecha de calificación más reciente en orden descendente de la calificación promedio de estrellas, se puede utilizar la siguiente consulta:

    SELECT p.product_name, AVG(r.rating_stars) AS avg_star_rating, MAX(r.rating_date) AS recent_rating_date
    FROM product p
    JOIN rating r ON p.prod_id = r.prod_id
    GROUP BY p.prod_id, p.product_name
    ORDER BY avg_star_rating DESC
    

    Explicación:

    • Unimos las tablas product y rating en la clave prod_id, que es una clave foránea en la tabla rating.
    • Agrupamos los resultados por prod_id y product_name y realizamos una agregación para obtener la calificación promedio de estrellas (AVG) y la fecha de calificación más reciente (MAX) para cada producto.
    • Ordenamos los resultados por la calificación promedio de estrellas en orden descendente.

    Tenga en cuenta que no es necesario incluir las tablas sale y customer en esta consulta ya que no se necesitan para obtener la información solicitada.

Comments are closed.