From c8d489143887a266a6a267b33a1cd6c586efa60d Mon Sep 17 00:00:00 2001 From: thinkasany <480968828@qq.com> Date: Wed, 11 Oct 2023 09:42:49 +0800 Subject: [PATCH] feat: update sql solution to lc problem: No.1251 --- solution/1200-1299/1251.Average Selling Price/README.md | 8 ++++---- .../1200-1299/1251.Average Selling Price/README_EN.md | 8 ++++---- .../1200-1299/1251.Average Selling Price/Solution.sql | 8 ++++---- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/solution/1200-1299/1251.Average Selling Price/README.md b/solution/1200-1299/1251.Average Selling Price/README.md index 55f4b23326c77..080cb22555733 100644 --- a/solution/1200-1299/1251.Average Selling Price/README.md +++ b/solution/1200-1299/1251.Average Selling Price/README.md @@ -91,12 +91,12 @@ UnitsSold table: ```sql SELECT p.product_id, - Round((Sum(u.units * p.price) + 0.0) / (Sum(units) + 0.0), 2) AS average_price + IFNULL(Round(Sum(units * price) / Sum(units), 2), 0) AS average_price FROM Prices AS p - INNER JOIN UnitsSold AS u ON p.product_id = u.product_id -WHERE u.purchase_date BETWEEN p.start_date AND p.end_date -GROUP BY p.product_id; + LEFT JOIN UnitsSold AS u + ON p.product_id = u.product_id AND purchase_date BETWEEN start_date AND end_date +GROUP BY product_id; ``` diff --git a/solution/1200-1299/1251.Average Selling Price/README_EN.md b/solution/1200-1299/1251.Average Selling Price/README_EN.md index ef1ed38d87448..e9d249fdae65f 100644 --- a/solution/1200-1299/1251.Average Selling Price/README_EN.md +++ b/solution/1200-1299/1251.Average Selling Price/README_EN.md @@ -89,12 +89,12 @@ Average selling price for product 2 = ((200 * 15) + (30 * 30)) / 230 = 16.96 ```sql SELECT p.product_id, - Round((Sum(u.units * p.price) + 0.0) / (Sum(units) + 0.0), 2) AS average_price + IFNULL(Round(Sum(units * price) / Sum(units), 2), 0) AS average_price FROM Prices AS p - INNER JOIN UnitsSold AS u ON p.product_id = u.product_id -WHERE u.purchase_date BETWEEN p.start_date AND p.end_date -GROUP BY p.product_id; + LEFT JOIN UnitsSold AS u + ON p.product_id = u.product_id AND purchase_date BETWEEN start_date AND end_date +GROUP BY product_id; ``` diff --git a/solution/1200-1299/1251.Average Selling Price/Solution.sql b/solution/1200-1299/1251.Average Selling Price/Solution.sql index 47b82048164a0..d42fa662c51b1 100644 --- a/solution/1200-1299/1251.Average Selling Price/Solution.sql +++ b/solution/1200-1299/1251.Average Selling Price/Solution.sql @@ -1,8 +1,8 @@ SELECT p.product_id, - Round((Sum(u.units * p.price) + 0.0) / (Sum(units) + 0.0), 2) AS average_price + IFNULL(Round(Sum(units * price) / Sum(units), 2), 0) AS average_price FROM Prices AS p - INNER JOIN UnitsSold AS u ON p.product_id = u.product_id -WHERE u.purchase_date BETWEEN p.start_date AND p.end_date -GROUP BY p.product_id; + LEFT JOIN UnitsSold AS u + ON p.product_id = u.product_id AND purchase_date BETWEEN start_date AND end_date +GROUP BY product_id;