在my library(mysql)中查找最畅销商品的名称

在my library(mysql)中查找最畅销商品的名称,mysql,aggregate-functions,Mysql,Aggregate Functions,我有家庭作业,有一点口吃。我的数据库有7个表。它们是产品书籍电影音乐事务用户,对于多对多关系,有表transproduct。所以我想找到数据库中最畅销的商品,包括产品名称、类型和该产品的销售数量。İn short transproduct保存事务ID、productid和数量,product保存名称、类型等。 我写了这样一个查询: select Barcode,sum(quantity) from transproduct group by Barcode; 它给了我一个产品的条形

我有家庭作业,有一点口吃。我的数据库有7个表。它们是
产品书籍电影音乐事务用户
,对于多对多关系,有表
transproduct
。所以我想找到数据库中最畅销的商品,包括产品名称、类型和该产品的销售数量。İn short transproduct保存事务ID、productid和数量,product保存名称、类型等。 我写了这样一个查询:

select Barcode,sum(quantity) 
  from transproduct 
  group by Barcode;
它给了我一个产品的条形码和该产品的销售量;比如,

12345  15

13452  2
etc...
所以我试着用这两张表写了一些类似的东西

select Barcode,max(summ) from(
select Barcode,sum(quantity) as summ 
  from transproduct 
  group by Barcode ) as t1; 
但它并没有给出最畅销商品的产品id,而是给出了最畅销商品的最低产品id和销售数量。我想要一张这样的桌子

productName|productType|Quantity

Back To Black|Music|53
我很困惑,所以我知道我不能清楚地解释我自己,但如果你能帮助我,谢谢你

我使用的表格包括:

create table transproduct(
transactionID char(9),
Barcode char(5),
quantity integer(5),
constraint pktransproduct primary key (transactionID, Barcode));

alter table transproduct add constraint fktransproducttransaction
foreign key (transactionID) references transactions(transactionID);

alter table transproduct add constraint fktransproductproduct
foreign key (Barcode) references product(Barcode);

这些是来自产品的一些示例数据

'12345', 'A Head Full Of Dreams', '2', '7.5', 'Music'
'46089', 'Ride The Lightning ', '31', '19.99', 'Music'
'46792', 'Back to Black', '21', '13.5', 'Music'
这些是transproduct中的一些示例数据

'164571349', '13762', '3'
'496272753', '14532', '13'
'365725914', '14532', '2'
要清楚的是,你可以看到产品“14532”卖了15次,它是最畅销的商品,所以我想买一个像桌子一样的

'Of Mice And Men','Book','15'
现在我使用这个查询,它是有效的,但我不认为它是有效的

select productName,ProductType,r from(
select Barcode as b ,max(summ) as r from(
select Barcode,sum(quantity) as summ 
  from transproduct 
  group by Barcode order by  sum(quantity) desc )as t1)as t2,product where    b=product.Barcode;

如果transproduct表中有产品名称,为什么不尝试按产品名称对其进行分组呢

    select Barcode,sum(quantity) 
    from transproduct 
     group by productname;

如果您能提供表的模式和一些示例数据,那就更好了。

看看ORDER BY(和LIMIT)子句可以为您做些什么。显示一些示例数据以及结果和预期结果我使用了一些ORDER BY和大量嵌套select我知道我的查询根本没有效率,但我认为现在就可以了。抱歉打扰您,谢谢您的订购建议^^如果我能完成所有其他作业,我会回来问这个问题,并提供更具体的数据^^我在transproduct中没有productname,我将在一分钟内编辑我的问题,并提供表格和一些示例数据
    select Barcode,sum(quantity) 
    from transproduct 
     group by productname;