encore je suis coincé avec compter quelque chose dans MySQL. La structure de la base de données est loin d'être optimale, mais je n'ai pas d'influence ici et je dois vivre avec. Probablement l'une des thats raisons pour lesquelles je encore besoin d'aide pour obtenir des informations sur ce :)Compte les changements d'une valeur au fil du temps?
On suppose que j'ai: some_id (pas le PK de la table, pas unique), année, le mois (pas champs de date seulement deux champs entiers), some_flag (caractère qui est A ou B).
Maintenant, j'aimerais savoir à quelle fréquence some_flag a changé (dans un laps de temps donné). Le laps de temps n'est pas très important dans la première approche, j'ai juste besoin de savoir combien de changements se sont produits. Notez que les modifications ne peuvent avoir lieu que tous les mois. Ma requête:
SELECT some_id,year,some_flag FROM mytable
WHERE some_flag = "A" OR someflag = "B"
AND year > 2005
GROUP BY some_id,some_flag
HAVING COUNT(DISTINCT some_flag) > 1
renvoie un jeu de résultats vide. Qu'est ce qui ne va pas avec ça? Je suis sûr qu'il ya des années où les changements de pavillon au cours des mois ...
est-ce pas quelque chose comme
select .... , sum(case when month=month-1 and some_flag != some_flag then 1 else 0 end) as changecount
possible?
Pouvez-vous poster des exemples de données et quelle sortie vous souhaitez, s'il vous plaît? –