То, что вы ищете, часто называют кросс-таблицей. Вот пример, который даст желаемые результаты:
Select registrationDate
, Sum( Case When ValidityDate = '2010-10-25' Then 1 Else 0 End ) As `2010-10-25`
, Sum( Case When ValidityDate = '2010-10-26' Then 1 Else 0 End ) As `2010-10-26`
, Sum( Case When ValidityDate = '2010-10-27' Then 1 Else 0 End ) As `2010-10-27`
From MyTable
Group By registrationDate
Если вы хотите динамически строить столбцы, вы ищете динамическую кросс-таблицу. Язык SQL в целом не предназначен для динамической генерации столбцов, и поэтому в MySQL это невозможно сделать без использования динамического SQL. Вместо этого вам следует создать этот запрос на среднем уровне или в механизме отчетов.