在mysql中找到最大数量

时间:2017-12-12 07:01:42

标签: mysql sql mariadb

enter image description here

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

我有

  

通过c.ISBN从购物车c组中选择标题,总和(c.quantity);

给了我以下结果

  

@if(Auth::user()) {{ code for authorise user. }} </h2> @else {{ Code for unauthorised user.}} @endif

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

谢谢!

3 个答案:

答案 0 :(得分:2)

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

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本书共享相同的最高数量

答案 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

注意:你真的应该将这些书放在一个单独的表格中,标题是&#34; books&#34;有两列,&#34; id&#34;和&#34;标题&#34;。然后,您可以更改&#34;标题&#34;原始表中的列到&#34; book_id&#34;并将其作为books.id的外键。这将大大提高SQL调用的速度。

希望这有帮助!

答案 2 :(得分:-1)

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

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