首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >错误:列"drive.cs1_pdm_d_mini“必须出现在GROUP子句中或在聚合函数中使用

错误:列"drive.cs1_pdm_d_mini“必须出现在GROUP子句中或在聚合函数中使用
EN

Stack Overflow用户
提问于 2017-01-17 11:17:15
回答 2查看 77关注 0票数 0

我需要在Postgres做个矿藏,但不起作用,请帮帮我

代码语言:javascript
复制
SELECT 
   (CS1_PDM_D_Mini + CS2_PDM_D_Mini + CS3_PDM_D_Mini)  / 
 SUM(CS1_PDM_D_Mini) + SUM(CS2_PDM_D_Mini) + SUM(CS3_PDM_D_Mini)
  AS My_CS_PDM_D_Mini
FROM mytable

我有以下错误:

列"drive.cs1_pdm_d_mini“必须出现在GROUP子句中,或用于聚合函数中。

最后编辑:

嘿,伙计,非常感谢你的帮助,最后,我终于得到了这样的结果:

代码语言:javascript
复制
(COALESCE(sum(Drive.CS1_PDM_D_Mini),0)+COALESCE(sum(Drive.CS2_PDM_D_Mini),0)+COALESCE(sum(Drive.CS3_PDM_D_Mini),0)) / 
CASE  ((count(CS1_PDM_D_Mini) + count(CS2_PDM_D_Mini) + count(CS3_PDM_D_Mini)))  
    WHEN 0 THEN 1 
ELSE  
((count(CS1_PDM_D_Mini) + count(CS2_PDM_D_Mini) + count(CS3_PDM_D_Mini))) 

END AS My_CS_PDM_D_Mini, 

增加了一个管理除以零的案例!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-01-17 11:51:34

如果我正确地指出,您正试图计算每行的值在所有行的总数中的比例,那么下面的查询应该会这样做。

代码语言:javascript
复制
SELECT 
  (CS1_PDM_D_Mini + CS2_PDM_D_Mini + CS3_PDM_D_Mini)  / 
    (SUM(CS1_PDM_D_Mini) OVER () + SUM(CS2_PDM_D_Mini) OVER () + SUM(CS3_PDM_D_Mini) OVER ())
  AS My_CS_PDM_D_Mini
FROM mytable

SUM(CS1_PDM_D_Mini) OVER ()位使用一个窗口表达式来获取所有行的和,而不仅仅是查看当前行。

https://www.postgresql.org/docs/current/static/tutorial-window.html中描述的窗口函数

这将只返回分数列表,例如: 0.5行,占总数的50%。因此,您可能希望返回行的键(如果有)。这可以添加到select:

代码语言:javascript
复制
SELECT 
  meaningful_row_key,
  (CS1_PDM_D_Mini + CS2_PDM_D_Mini + CS3_PDM_D_Mini)  / 
    (SUM(CS1_PDM_D_Mini) OVER () + SUM(CS2_PDM_D_Mini) OVER () + SUM(CS3_PDM_D_Mini) OVER ())
  AS My_CS_PDM_D_Mini
FROM mytable
票数 0
EN

Stack Overflow用户

发布于 2017-01-17 11:25:51

请用这个

代码语言:javascript
复制
SELECT SUM(CS1_PDM_D_Mini) + SUM(CS2_PDM_D_Mini) + SUM(CS3_PDM_D_Mini) / 
       (CS1_PDM_D_Mini + CS2_PDM_D_Mini + CS3_PDM_D_Mini) AS My_CS_PDM_D_Mini
FROM mytable
group by CS1_PDM_D_Mini
    ,CS2_PDM_D_Mini
    ,CS3_PDM_D_Mini
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41695739

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档