Решить это можно только в процедурном контексте программирования при постобработки результатов запроса, например, на PHP.
/*Функция преобразования выборки в матрицу */
function get_matrix($rows)
{
// получаем все значения по id - измерению матрицы (строки матрицы)
// можно сделать запросом select distinct id from table order by id
foreach($rows as $row)
$id_dem[$row['id']] = 1;
// получаем все значения по date - измерению матрицы (столбцы матрицы)
// можно сделать запросом select distinct date from table order by date
foreach($rows as $row)
$date_dem[$row['date']] = 1;
$map = null; // если нет значений размерности матрицы, то функция вернет null
// получаем карту не-null значений - непустые ячейки матрицы
foreach($rows as $row)
$map[$row['id']][$row['date']] = $row['count'];
// дополняем карту null значениями - получаем полноценную матрицу
if(isset($id_dem) && isset($date_dem))
foreach($id_dem as $id => $val_id)
foreach($date_dem as $date => $val_date)
$map[$id][$date] = array_key_exists($id, $map) && array_key_exists($date, $map[$id])
? $map[$id][$date] : null;
return $map;
}