2017-08-25 5 views
0

Je suis en train d'exécuter la requête suivante:Regroupement par date stockée comme Varchar2

SELECT TAB.week_end, 
    COUNT(TAB.id) 
FROM (
     SELECT C.week_end,    
      C.ID 
     FROM my_table C  
     WHERE C.week_end IS NOT NULL 
    ) TAB 
GROUP BY TAB.week_end, TAB.id 

Résultat attendu:

week_end id 
2016-01 45000 
2016-02 61000 
2016-03 59000 

Ce que je veux est:

week_end id 
2016-01 1 
2016-01 1 
2016-02 1 
2016-02 1 

maintenant Je connais les difficultés lors du regroupement par date. Mais dans mon cas, la date est déjà stockée sous varchar2. Quelqu'un peut-il m'aider ici?

+0

simplement 'GROUP BY TAB.week_end'? – jarlh

+0

Supprimer Tab.id du groupe par –

+0

Merci Eid qui a aidé – xcelm

Répondre

0

Retirer Tab.id du groupe par résoud il

3

Utilisation suivant:

SELECT TAB.week_end, COUNT(TAB.id) 
FROM (SELECT C.week_end,    
     C.ID 
FROM my_table C  
WHERE C.week_end IS NOT NULL) TAB 
GROUP BY TAB.week_end 

Si les deux tables sont les mêmes u peut atteindre comme suit:

SELECT C.week_end, COUNT(C.id) 
FROM my_table C  
WHERE C.week_end IS NOT NULL 
GROUP BY C.week_end