2012-09-26 10 views
0

J'ai une table comme celui-ciGroupe par requête - Pas un seul groupe par fonction?

column1 column2 column3 

abc  xyz  4 
def  ghi  3 
abc  xyz  6 
abc  xyz  1 
jkl  mno  4 

Résultat attendu après requête

column1 column2 column3 

abc  xyz  11 
def  ghi  3 
jkl  mno  4 

Ma Recherche est comme ci-dessous:

select column1, column2, count(column3) 
from 
    (select ......) as column1, 
    (select ......) as column2, 
    (select ......) as column3) 
group by column1, column2, count(column3) 

Je reçois cette erreur « pas un groupe unique groupe fonction "

Répondre

1

Vous devez utiliser SUM et vous devez retirer le count(column3) dans le group by et si vraiment vous obtenez les colonnes que les résultats de sous- les requêtes qu'il pourrait avoir besoin de regarder un peu comme ceci:

select column1, column2, sum(column3) 
from (
     select 
      (select ......) as column1, 
      (select ......) as column2, 
      (select ......) as column3 
      from dual 
     ) 
group by column1, column2 

sinon vous devrez répéter l'ensemble de la sous-requête de sélection dans le group by . Dans votre requête, vous dites FROM (select .......) as column1 mais cela signifie que la sous-requête est appelée column1, ce qui ne fonctionne pas. Les colonnes sélectionnées dans la sous-requête peuvent être adressées en utilisant le préfixe column1. Par exemple si vous dites FROM (select x from test) t1 alors vous pouvez adresser x en écrivant t1.x.

mais si vous avez une table simple que vous décrivez ci-dessus la déclaration correcte est

select column1, column2, sum(column3) from mytable 
group by column1, column2 
2

Comment utiliser SUM

SELECT column1, 
     column2, 
     SUM(column3) 
FROM YOUR_TABLE 
GROUP BY column1, 
     column2 
+0

J'ai utilisé la fonction de somme que vous avez mentionné, mais obtenir cette erreur suivante « pas une fonction de groupe unique groupe » – user1208862

+1

Utilisation toute la requête. La clé est que vos colonnes SELECT doivent correspondre à votre GROUP BY, c'est-à-dire 'column1, column2' avec le supplément' SUM (column3) '. http://ora-00937.ora-code.com/ – RichardTheKiwi

0

en utilisant la requête simple, vous obtiendrez réponse comme u like

select col1, col2, sum(col3) from test 
    group by col1,col2