2010-04-07 4 views
1

j'ai une table avec les colonnes telles id, tid, COMPANYID, ttype etc ..voulez calculer la somme du nombre rendu par le groupe par l'option

l'id est peut-être même pour un grand nombre, mais CompanyID unique dans le CompanyID et tid est toujours unique et

je veux calculer le nombre total d'opérations conclues dans le tableau,

une seule transaction peut être insérée dans plus d'une ligne,

par exemple,

id tid companyid ttype 
1 1 1   xxx 
1 2 1   may be null 
2 3 1   yyy 
2 4 1   may be null 
2 5 1   may be null 

les entrées ci-dessus doivent être comptées comme seulement deux transactions ..

il peut être répété de nombreuses companyids ..

alors comment puis-je calculer le total des transactions non inscrites dans le tableau

i essayé

select sum(count(*)) from transaction group by id,companyId; 

mais ne fonctionne pas

select count(*) from transaction group by id; 

ne fonctionne pas car l'ID peut être répété pour différents companyids.

Répondre

0

Vous devrez peut-être reformuler votre exigence. Mais si je comprends bien, à la suite pourrait fonctionner:


select count(distinct id, companyid) from transaction ; 

+0

la requête ci-dessus renvoie 7932 donc je pense que la valeur ci-dessus est appropriée. Je vais essayer ça avec un plus petit nombre d'enregistrements – Vijay

2

Essayez cette

SELECT SUM(s.counts) transactions FROM (SELECT COUNT(*) counts FROM transaction GROUP BY id,companyId) s;