我试图找到销售最大单位的产品的名称,我有两个表,购买和产品,产品具有pname和pid,购买有pid,qty(销售的单位)。 我管理这个SQL嵌套聚合分组错误
select p.pname, sum(q.qty) from purchases q
inner join products p on p.pid=q.pid
where p.pid=q.pid
group by p.pname
order by sum(q.qty) desc
我得到的结果降序排列,但我只需要上最热销的单位,多种产品可以有最顶层的销售单位。当我使用
max(sum(q.qty))
我得到分组错误。
什么查询会导致错误?即,如何使用max(sum(q.qty))? –
如果您可以提供一些样本输入和期望的输出数据,以及您如何在导致错误的查询中尝试使用'max(sum(q.qty))',这将有所帮助。注:如果您使用的是ansi连接语法(例如,'from x inner join y on(x.col = y.col)'),那么您不需要在where子句中重复连接条件。因此,您可以从查询中删除“where p.pid = q.pid”。 – Boneist
[如何结合MySQL中的聚合函数?]可能的重复(http://stackoverflow.com/questions/3409581/how-to-combine-aggregate-functions-in-mysql) – xQbert