2010-02-08 5 views
0
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 

Je voudrais sélectionner la somme de la valeur où scc commence par 12 et param="CO" et les ont regroupés par fips. SCC est unique par fips (comme dans plusieurs fips pourrait avoir le même scc)défi postgresql: comment sélectionner somme d'une colonne ayant une autre colonne comme « ab% »

Je voudrais que ces résultats:

fips sum 
1  2.1 
2  1.3 

J'espère vraiment un sens.

La requête Je suis actuellement à l'aide est:

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

mais je dois avoir scc colonne dans le groupe par ou ensemble, grrr.

Si je scc inclus dans le groupe par, je reçois:

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

qui ne se résume pas du tout. Ce n'est pas ce que je veux.

Je tente de simplifier cela. En fait, j'ai un tas d'autres colonnes qui, je l'espère, ne devraient pas interférer (je pourrais avoir tort), mais j'espère que l'idée de design est là. Si quelqu'un a des suggestions, je serais vraiment reconnaissant.

Si quelqu'un a des questions qui pourraient m'aider, je serais ravi de l'entendre. Merci à tous.

Répondre

3

Placez la condition dans WHERE au lieu de HAVING.

+0

Ha, belle. Montre à quel point je connais peu de sql. Merci beaucoup. –

0

Vous devriez probablement filtrer SSC dans la clause where, et non la clause having:

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