【问题标题】:Solve QUERY for showing TOP 5 selling Products解决 QUERY 以显示 TOP 5 畅销产品
【发布时间】:2019-07-27 02:07:46
【问题描述】:

我有一个Customer_Invoice 的表,其中包含item_nameQuantity 的列。我想以降序显示特定商品的前 5 件商品和已售商品数量,即如果商品 A 的数量为 5,商品 B 的数量为 3,那么商品 A 应位于顶部,商品 B 将排在第二位。

|  ITEMCODE | QUANTITY |
------------------------
|     kb434 |        1 |
| A4tech123 |        4 |
|   HDD40GB |        4 |
|    Cell12 |        4 |
|    Icd123 |        2 |
| A4tech123 |        6 |

在上图中,我希望第一个没有A4tech123 第二个没有HDD40GB,第三个没有Cell12,依此类推。

【问题讨论】:

  • 是列 item_code 还是 item_name?
  • 我要添加item_code的数量,即要添加数量和item_code的数量...
  • 我明白了。您在介绍段落中写了“item_name”

标签: sql oracle sqlplus


【解决方案1】:
select top 5 Item_code, sum(Quantity)
from customer_invoice
group by Item_code
Order by sum(Quantity) desc

【讨论】:

  • @MuhammadUsman - 你需要像我在回答查询中所做的那样使用 group by 来检查一下
【解决方案2】:
select top 5 item_name , sum(Quantity) as Quantity from Customer_Invoice 
group by item_name 
ORDER BY sum(Quantity) DESC

【讨论】:

  • @MuhammadUsman - 我不知道你的第一个正确答案与 group by 不被接受....回答错误后更新被接受
【解决方案3】:

如果您使用 postgres 作为数据库,请使用以下查询:

select Item_code, Quantity from customer_invoice order by Quantity desc limit 5

如果您使用任何其他数据库,请使用此查询:

select top 5 Item_code, Quantity from customer_invoice order by Quantity desc

我没有检查第二个,因为我使用的是 Postgres DB,所以在使用之前确认查询

【讨论】:

  • 'limit' 语法也用于 mySQL,iirc。但 OP 正在使用 oracle
【解决方案4】:
CREATE TABLE invoice
    (ITEMCODE varchar(9), QUANTITY int)
;

INSERT INTO invoice
VALUES
    ('kb434', 1),
    ('A4tech123', 4),
    ('HDD40GB', 4),
    ('Cell12', 4),
    ('Icd123', 2),`
    ('A4tech123', 6)
;


SELECT ITEMCODE,
       SUM(QUANTITY) as total_quantity,
       ROW_NUMBER() OVER (order by sum(QUANTITY) desc) as rank_n
FROM invoice
GROUP BY ITEMCODE

http://sqlfiddle.com/#!18/da13e/6

【讨论】:

    【解决方案5】:
    SELECT TOP 5 * FROM Customer_Invoice ORDER BY QUANTITY
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多