【发布时间】:2019-03-13 18:27:23
【问题描述】:
我在函数 view() 上遇到了一些问题。我收到错误:
列“store.id”必须出现在 GROUP BY 子句中或用于聚合函数中
例如:
name number quantity
plc 55 1
engine 66 1
plc 55 3
输出:
name number quantity
plc 55 4
engine 66 1
【问题讨论】:
-
这是对 SQL 查询中聚合的基本误解。但为了提供帮助,我们需要知道您希望输出的样子。例如,当使用
GROUP BY时,结果将是每组一条记录——但可能有许多表行“落入”该组。你希望它们如何显示? (考虑id,可能有许多ids 都符合您的标准并最终归入同一组——您是否希望它们全部合并到一个“单元格”中?) -
我已经更新了我的帖子以澄清我的问题。
-
回复:您的更新:
SELECT name, number, SUM(quantity)并按您未聚合的列(名称和编号)分组 - 所以GROUP BY name, number。选择其他任何内容都需要您将其添加到GROUP BY的列表中或将其聚合(就像您使用SUM(quantity)一样)。 -
是否有机会在不分组的情况下也收到一个ID?
标签: python sql postgresql psycopg2