Задача postgresql: как выбрать сумму одного столбца, имеющего другой столбец, например «ab%» - PullRequest
0 голосов
/ 09 февраля 2010
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 начинается с 12 и param="CO", и сгруппировать их по fips. SCC уникален для каждого кадра (так как в нескольких кадрах может быть один и тот же 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%'

но у меня должен быть столбец scc в группе или совокупности, grrr.

Если я включу scc в группу, я получу:

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

, который вообще не суммируется. Это не то, что я хочу.

Я пытаюсь упростить это. У меня действительно есть куча других столбцов, которые, я надеюсь, не должны мешать (я могу ошибаться), но я надеюсь, что идея дизайна есть. Если у кого-то есть предложения, я был бы невероятно благодарен.

Если у кого-нибудь возникнут вопросы, которые могут помочь мне, я бы с удовольствием его услышал. Спасибо всем.

Ответы [ 2 ]

3 голосов
/ 09 февраля 2010

Поставьте условие в WHERE вместо HAVING.

0 голосов
/ 09 февраля 2010

Вам, вероятно, следует отфильтровать SSC в предложении where, а не в имеющем:

select fips, sum(value)
from YourTable
where param = 'CO'
and ssc like '12%'
group by fips
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...