【问题标题】:I am trying to find most popular item in my tables using sqlite我正在尝试使用 sqlite 在我的表中找到最受欢迎的项目
【发布时间】:2011-11-05 04:52:50
【问题描述】:

大家好,我似乎被困住了,我希望你们能在这里帮助我。我正在尝试编写一个代码,该代码将仅显示订购次数最多的食品以及订购次数,而不会添加诸如 Quantity > 5 之类的内容。我只想让代码自己给我最订购的商品我有这些表:

客房服务

  • RoomServiceNumber(主键)类型:整数
  • OrderNumber 类型:整数
  • GuestID 类型:整数
  • 日期类型:日期时间
  • 时间类型:日期时间
  • TotalPrice 类型:整数

RSLINEITEM

  • OrderNumber(主键)类型:整数
  • ItemNumber 类型:整数
  • 数量类型:整数

项目

  • ItemNumber(主键)类型:整数
  • 描述类型:文本
  • 价格类型:整数

到目前为止,我已经获得了我的 sql 代码来向我显示所有项目(描述)以及它被订购的项目数量。我只想要最订购的商品。

我的代码:

SELECT Description, SUM(Quantity) AS NumberofTimesOrdered
FROM RSLINEITEM JOIN ITEM ON (RSLINEITEM.ItemNumber=ITEM.ItemNumber)
GROUP BY Description 

我的结果是:

   Description       NumberofTimesOrdered
   Baked Potato      1
   Bud Light Bottle  2
   French Fries      1
   Heineken Bottle   2
   Large Coke        1
   Large Sprite      3
   Pork Cutlet       4
   Prime Rib         6
   Orange Juice      1

我只希望我的代码只显示如下内容:

   Description       NumberofTimesOrdered
   Prime Rib         6

【问题讨论】:

    标签: sql sqlite count max


    【解决方案1】:

    使用ORDER BYLIMIT

    SELECT Description
          ,SUM(Quantity) AS NumberofTimesOrdered
    FROM   RSLINEITEM
    JOIN   ITEM USING (ItemNumber)
    GROUP  BY Description 
    ORDER  BY 2 DESC
    LIMIT  1
    

    您可以重复 ORDER BY 子句中的表达式或使用序号。 The manual about that:

    如果 ORDER BY 表达式是一个常量整数 K,那么表达式 被认为是结果集的第 K 列的别名(列 从 1) 开始从左到右编号。

    我还用USING 简化了代码。 Info at the same source.

    【讨论】:

    • 谢谢您,先生,您是天才和学者。
    猜你喜欢
    • 2012-09-09
    • 1970-01-01
    • 2022-01-22
    • 2021-02-20
    • 2012-03-24
    • 2016-06-22
    • 1970-01-01
    • 2017-06-27
    • 1970-01-01
    相关资源
    最近更新 更多