gpt4 book ai didi

postgresql - 我如何在postgresql中同时使用group by和order by

转载 作者:行者123 更新时间:2023-12-05 04:17:19 25 4
gpt4 key购买 nike

select t.spdi_application_id,t.spdi_attribute_id, t.spdi_attribute_value 
from schm_sp.spe_service_appl_cert_details t
where spdi_attribute_id in(395,263,397,396,75)
GROUP BY spdi_application_id
ORDER BY spdi_application_id,spdi_attribute_id

我正在使用这个命令,但出现如下错误

ERROR:  column "t.spdi_attribute_id" must appear in the GROUP BY clause or be used in an aggregate function
LINE 1: select t.spdi_application_id,t.spdi_attribute_id, t.spdi_att...
^

********** Error **********

ERROR: column "t.spdi_attribute_id" must appear in the GROUP BY clause or be used in an aggregate function
SQL state: 42803
Character: 30

如何在没有 group by 的情况下工作正常且没有错误。

最佳答案

当您执行“分组依据”时,您是将行按一列或多列展平。对于不在“分组依据”中的列,您需要告诉 Postgres 它应如何使用聚合函数合并列的数据。

http://www.postgresql.org/docs/current/static/functions-aggregate.html

在您的情况下,当有多行具有相同的 application_id 时,您需要告诉 Postgres 如何展平列 attribute_id 和 attribute_value。它应该返回 max() id 和值吗?它应该把它们加在一起吗?它应该将它们连接成一个值数组吗?它应该返回平均值吗?

select app_id, max(attr_id) as max_attr_id from foo group by app_id;

关于postgresql - 我如何在postgresql中同时使用group by和order by,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23577460/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com