mon SQL;
SELECT created_date, response_status, count FROM t_bvs_txn_response_summary WHERE created_date > SYSDATE - 1 / 24 AND response_status IN ( 'successful', 'Disconnection' ) ORDER BY 1;
3 Réponses :
Essayez PIVOT
SELECT * FROM ( SELECT created_date, response_status, nvl(count,0) as count FROM t_bvs_txn_response_summary WHERE created_date > SYSDATE - 1 / 24 AND response_status IN ( 'successful', 'Disconnection' ) ) PIVOT ( SUM(count) FOR response_status IN ('successful', 'Disconnection') ) ORDER BY 1;
Non, il s'agit simplement de regrouper la colonne de réponse_status qui n'est pas la sortie souhaitée. J'ai mis à jour la question et montré la sortie souhaitée.
Avec peu de modifications à votre code, cela a fonctionné mais il faut montrer zéro au lieu de NULL au cas où il n'y a rien trouvé pour cet exemple particulier. Je devais ajouter compter dans la fonction de sélection interne, puis la fonction de somme après pivot.
Si vous modifiez votre code, cela peut être marqué comme une réponse correcte.
@khalidmehmoodawan j'ai édité maintenant mon code selon votre commentaire
Puisse si vous travaillez sur la section 0 au lieu de NULLS au cas où aucun compte / somme n'est trouvé, cela améliorera encore la réponse. Merci .
@khalidmehmoodawan j'ai ajouté NVL (compte, 0), il devrait faire le tour
Cette approche n'est utilisée que si vous souhaitez récupérer toutes les colonnes restantes et compte également. Les comptes seront répétés.
SELECT created_date, response_status, count,count(*) over(partition by response_status) FROM t_bvs_txn_response_summary WHERE created_date > SYSDATE - 1 / 24 AND response_status IN ( 'successful', 'Disconnection' ) ORDER BY 1;
Vous pouvez essayer d'utiliser une agrégation conditionnelle
SELECT created_date, sum(case when response_status='successful' then count end ) as 'successful', sum(case when response_status='Disconnection' then count end) as 'Disconnection' FROM t_bvs_txn_response_summary WHERE created_date > SYSDATE - 1 / 24 AND response_status IN ('successful', 'Disconnection') group by created_date
Oui, celui-ci a également travaillé mais pouvons-nous utiliser pivot et éviter si et au cas?