LeetCode-1251. El precio de venta promedio (simple)

Tabla: Precios

+ --------- + --------------- +
| columna Nombre | Tipo |
+ --------------- + + ---------
| product_id | int |
| fecha_inicial | FECHA |
| END_DATE | FECHA |
|. precio | int |
+ --------------- + --- + ------
(la product_id, START_DATE END_DATE) los precios mesa es la clave principal.
Los precios de cada fila de la tabla representa un precio determinado dentro de un período de tiempo.
Correspondiente al período de tiempo de cada producto no se superponen, lo que significa que no se cruzarán el mismo período, el precio de un producto.
 

Tabla: UnitsSold

+ --------- + --------------- +
| columna Nombre | Tipo |
+ --------------- + + ---------
| product_id | int |
| PURCHASE_DATE | FECHA |
| Unidades | int |
+ --------------- + -------- - +
UnitsSold ninguna tabla de clave principal, puede contener entradas duplicadas.
Cada tabla UnitsSold fila indica la fecha para cada producto vendido, unidades y Identificación del producto.
 

consultas SQL de escritura para encontrar el precio medio de venta de cada producto.
Precio_medio debe ser redondeado a dos decimales.
Los resultados ilustran en el siguiente formato:

Los precios tabla:
+ ------------ + ------------ + ------------ + ------- - +
| product_id | fecha_inicial | fecha_final | precio |
+ ------------ + ------------ + ------------ + -------- +
| 1 | 02/17/2019 | 02/28/2019 | 5 |
| 1 | 01/03/2019 | 03/22/2019 | 20 |
| 2 | 01/02/2019 | 02/20/2019 | 15 |
| 2 | 02/21/2019 | 03/31/2019 | 30 |
+ ------------ + ------------ + ------------ + -------- +
 
UnitsSold tabla:
+ ------------ + --------------- + ------- +
| product_id | PURCHASE_DATE | unidades |
+ ------------ + --------------- + ------- +
| 1 | 02/25/2019 | 100 |
| 1 | 01/03/2019 | 15 |
| 2 | 02/10/2019 | 200 |
| 2 | 03/22/2019 | 30 |
+ ------------ + --------------- + ------- +

La Tabla El resultado:
+ ------------ + --------------- +
| product_id | Precio_medio |
+ ----------- - + --------------- +
| 1 | 6,96 |
| 2 | 16.96 |
+ ------------ + -------- ------- +
precio medio producto = precio total / número de ventas de los productos.
El producto del precio promedio = ((5 * 100) + (15 * 20)) / 115 = 6,96
Los precios medios de venta 2 = ((200 * 15) + (30 * 30)) / 230 = 16,96

Fuente: estancia botón (LeetCode)
enlace: https: //leetcode-cn.com/problems/average-selling-price
con derechos de autor por deducción de todas las redes. reimpresión comercial póngase en contacto con la reimpresión autorizada oficial, no comercial por favor indique la fuente.

Moderación: consultas SQL de escritura para encontrar el precio medio de venta de cada producto.

Pensamientos: El precio medio de venta = número total de productos de productos / ventas.

Precio del producto multiplicado por el número igual al precio total,

La resolución de problemas:

select product_id,round(sum(a)/sum(units),2) as average_price from(
    select 
        p.product_id as product_id,
        price,units,
        price*units as a
    from Prices p 
    left join UnitsSold u
    on p.product_id=u.product_id and (purchase_date<=end_date and purchase_date>=start_date))t
group by product_id

Segundo método:

--  Write your MySQL query statement below

SELECT a.product_id
	, round(SUM(a.units * b.price) / SUM(a.units), 2) AS average_price
FROM UnitsSold a
	JOIN Prices b
	ON (a.product_id = b.product_id
		AND a.purchase_date >= b.start_date
		AND a.purchase_date <= b.end_date)
GROUP BY product_id

puntos de conocimiento:

Publicados 144 artículos originales · ganado elogios 2 · Vistas 5741

Supongo que te gusta

Origin blog.csdn.net/Hello_JavaScript/article/details/104749332
Recomendado
Clasificación