返回介绍

solution / 1000-1099 / 1082.Sales Analysis I / README_EN

发布于 2024-06-17 01:03:31 字数 3217 浏览 0 评论 0 收藏 0

1082. Sales Analysis I

中文文档

Description

Table: Product

+--------------+---------+
| Column Name  | Type  |
+--------------+---------+
| product_id   | int   |
| product_name | varchar |
| unit_price   | int   |
+--------------+---------+
product_id is the primary key (column with unique values) of this table.
Each row of this table indicates the name and the price of each product.

Table: Sales

+-------------+---------+
| Column Name | Type  |
+-------------+---------+
| seller_id   | int   |
| product_id  | int   |
| buyer_id  | int   |
| sale_date   | date  |
| quantity  | int   |
| price     | int   |
+-------------+---------+
This table can have repeated rows.
product_id is a foreign key (reference column) to the Product table.
Each row of this table contains some information about one sale.

 

Write a solution that reports the best seller by total sales price, If there is a tie, report them all.

Return the result table in any order.

The result format is in the following example.

 

Example 1:

Input: 
Product table:
+------------+--------------+------------+
| product_id | product_name | unit_price |
+------------+--------------+------------+
| 1      | S8       | 1000     |
| 2      | G4       | 800    |
| 3      | iPhone     | 1400     |
+------------+--------------+------------+
Sales table:
+-----------+------------+----------+------------+----------+-------+
| seller_id | product_id | buyer_id | sale_date  | quantity | price |
+-----------+------------+----------+------------+----------+-------+
| 1     | 1      | 1    | 2019-01-21 | 2    | 2000  |
| 1     | 2      | 2    | 2019-02-17 | 1    | 800   |
| 2     | 2      | 3    | 2019-06-02 | 1    | 800   |
| 3     | 3      | 4    | 2019-05-13 | 2    | 2800  |
+-----------+------------+----------+------------+----------+-------+
Output: 
+-------------+
| seller_id   |
+-------------+
| 1       |
| 3       |
+-------------+
Explanation: Both sellers with id 1 and 3 sold products with the most total price of 2800.

Solutions

Solution 1

# Write your MySQL query statement below
SELECT seller_id
FROM Sales
GROUP BY seller_id
HAVING
  SUM(price) >= ALL(
    SELECT SUM(price)
    FROM Sales
    GROUP BY seller_id
  );

Solution 2

# Write your MySQL query statement below
WITH
  T AS (
    SELECT
      seller_id,
      SUM(price) AS tot,
      RANK() OVER (ORDER BY SUM(price) DESC) AS rk
    FROM Sales
    GROUP BY seller_id
  )
SELECT seller_id
FROM T
WHERE rk = 1;

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文