需要一些意见与MySQL代码,我需要使代码清单中的所有购买的法案与最高的总成本

2uluyalo  于 2023-01-29  发布在  Mysql
关注(0)|答案(1)|浏览(124)

基本上,我使用的是一个餐厅的数据库,我需要的代码列出了所有购买的食物**(名称,类别,价格,金额等),但只有从法案,有最高的总价。我尝试使用sum(max())得到总价,但它会显示错误1111这是无效的使用组功能,我尝试查找修复,但没有结果是有帮助的
我觉得注意
all_data**实际上是一个视图也很重要。

Select name, category, amount, if(amount>1, price*amount,price)
From all_data
Where (select sum(if(amount>1,amount*price,price)) from all_data)=(select max(sum(if(amount>1,amount*price,price))) from all_data)
atmip9wb

atmip9wb1#

您可以使用inner join来执行一个子查询,在该子查询中,我们可以获取所有购买的总价最高的食品:

select t.*, s.total
from all_data t
inner join (
  Select name, category, amount, price, sum(price*amount) as total
  From all_data
  where amount > 1 
  group by name, category
) as s on s.name = t.name and s.category = t.category
order by s.total desc;

如果只需要10个产品,请将limit 10添加到子查询中

相关问题