CREATE TABLE t1 (annee YEAR(4), mois INT(2) UNSIGNED ZEROFILL, jour INT(2) UNSIGNED ZEROFILL); INSERT INTO t1 VALUES(2000,1,1),(2000,1,20),(2000,1,30),(2000,2,2), (2000,2,23),(2000,2,23); SELECT annee,mois,BIT_COUNT(BIT_OR(1<<jour)) AS jours FROM t1 GROUP BY annee,mois; Qui retourne : +-------+-------+-------+ | annee | mois | jours | +-------+-------+-------+ | 2000 | 01 | 3 | | 2000 | 02 | 2 | +-------+-------+-------+
|