如何从上表中找到所有客户中最受欢迎的图书? (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()。
谢谢!
答案 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