【问题标题】:Find the Maximum number in mysql在mysql中找到最大数
【发布时间】:2017-12-12 07:01:41
【问题描述】:

如何从上表中找到所有客户中最受欢迎的书? (cid = '客户 ID')?

我有

select Title, sum(c.quantity) from cart c group by c.ISBN;

这给了我以下结果

+-----------------------------------------+-----------------+ | Title | sum(c.quantity) | +-----------------------------------------+-----------------+ | Writing Skills | 5 | | Fundamentals of Database Systems | 2 | | Database Management Systems | 5 | | Data Mining, Practical Machine Learning | 4 | +-----------------------------------------+-----------------+

我知道mysql中的Max()函数可以达到我的目的,但是不知道Max()和Sum()一起实现。

谢谢!

【问题讨论】:

    标签: mysql sql mariadb


    【解决方案1】:

    要获得最受欢迎的书籍/书籍,您可以使用以下查询

    select c.ISBN,c.Title, sum(c.quantity) soldQuantity
    from cart c 
    group by c.ISBN,c.Title
    having soldQuantity = (
        select sum(quantity)
        from cart  
        group by ISBN,Title
        order by sum(quantity) desc 
        limit 1
    )
    

    请注意,最多可以有 1 本书共享相同的最高数量

    【讨论】:

      【解决方案2】:

      下面的SQL语句应该给你数量最多的一本书

      SELECT
          Title, 
          sum(c.quantity) AS total_count
      FROM 
          cart c 
      GROUP BY 
          c.ISBN 
      ORDER BY 
          total_count DESC
      LIMIT 1
      

      注意:您确实应该将书籍放在一个名为“books”的单独表格中,其中包含“id”和“title”两列。然后,您可以将原始表中的“title”列更改为“book_id”,并使其成为 books.id 的外键。这将大大提高 SQL 调用的速度。

      希望这会有所帮助!

      【讨论】:

        【解决方案3】:

        您好,一种方法是使用这样的子查询:

        SELECT TITLE, MAX (SUMMATION)
        FROM (SELECT TITLE, SUM (C.QUANTITY) SUMMATION
              FROM CART C
              GROUP BY TITLE, C.ISBN) LIST
        GROUP BY TITLE, SUMMATION
        

        【讨论】:

          猜你喜欢
          • 2013-05-02
          • 2013-05-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多