postgresql challenge:如何选择一列的总和,如另一列,如'ab%'

时间:2010-02-08 22:32:21

标签: sql postgresql

fips   value   scc     param
 1      1      123     CO
 1      1.1    124     CO
 1      1.2    125     notCO
 2      1.3    122     CO
 2      1.4    142     CO

我想选择scc以12param="CO"开头的值之和,并按fips分组。 SCC每个fips是唯一的(因为多个fips可能具有相同的scc)

我想要这些结果:

fips   sum  
 1     2.1  
 2     1.3  

我真的希望这是有道理的。

我目前使用的查询是:

SELECT
   fips
 , sum(value)
FROM
   table
WHERE
   param='CO'
GROUP BY
   fips
 , param
HAVING
   scc LIKE '12%'

但我必须在group by或aggregate中使用列scc,grrr。

如果我在分组中包含scc,我会得到:

fips     sum    param
1        1       CO
1        1.1     CO
2        1.3     CO
2        1.4     CO

根本没有总结。那不是我想要的。

我试图简化这个。我实际上有一堆其他的栏目,我希望不要干涉(我可能是错的),但我希望设计理念在那里。如果有人有任何建议,我真的非常感激。

如果有人有任何问题可以帮助他们帮助我,我很乐意听到。 谢谢大家。

2 个答案:

答案 0 :(得分:3)

将条件放在WHERE而不是HAVING

答案 1 :(得分:0)

你可能应该在where子句中过滤SSC,而不是在having子句中过滤:

select fips, sum(value)
from YourTable
where param = 'CO'
and ssc like '12%'
group by fips