Bonjour,
J'aimerais avoir un coup de main sur la maniére de construire une requête sql;
je dispose de la table : TRX_jour(trx_id,client_id,magasin_id,type_trx,date_trx).
je veux extraire pour chaque client son magasin préféré : " sur toute l'année, je fais le count des trx_key par client_id et par magasin_id, exemple :
Client | Magasin | Count
...cli1 | mag10 | 10
...cli1 | mag09 | 9
...cli1 | mag01 | 20
...cli2 | mag10 | 4
==> le résultat de ma requête devrait me retourner la 3ème ligne et 4ème ligne.
jusque là j'ai essayé de résoudre le problème avec le Max(Count())
select client_id,magasin_id, count(trx_id)
from TRX_jour
group by client_id, magasin_id
having count(trx_key) =
( select max(cnt) from
( select client_id,magasin_id, count(trx_id) cnt
from TRX_jour
where date_TRX between to_date('01/01/2009','DD/MM/YYYY') and to_date('21/12/2009','DD/MM/YYYY')
and type_TRX = 'N'
group by client_id,magasin_id
)
)
==> le soucis c'est que la clause Having sur la count ne me renvoi qu'une seule valeur, et du coup la requête entière me renvoie une seule ligne donc un seul client!!!!!
Pourriez vous please me suggérer la bonne requête qui me retournera le résultat escompté ?
Merci d'avance.
Partager