CREATE TABLE projects (
  id INT PRIMARY KEY,
  title VARCHAR
);

INSERT INTO projects VALUES
  (2, 'Canape CRM'),
  (3, 'Master'),
  (1, 'Canape CMS');

CREATE TABLE statuses (
  id INT PRIMARY KEY,
  title VARCHAR
);

INSERT INTO statuses VALUES
  (7, 'Deploying'),
  (1, 'Updating'),
  (2, 'Backup'),
  (3, 'OK'),
  (6, 'Error');

CREATE TABLE tasks (
  id serial PRIMARY KEY,
  project_id INT REFERENCES projects (id),
  status_id  INT REFERENCES statuses (id)
);

INSERT INTO tasks (project_id, status_id) VALUES
  (2, 2),
  (2, 1),
  (2, 1),
  (1, 1),
  (2, 1),
  (1, 2),
  (1, 1),
  (1, 7),
  (1, 2),
  (1, 1),
  (1, 1),
  (1, 1),
  (3, 1),
  (1, 7),
  (1, 1),
  (1, 6),
  (1, 3),
  (2, 2),
  (1, 7),
  (1, 2),
  (1, 2),
  (1, 7),
  (1, 7),
  (1, 7),
  (1, 7),
  (3, 7),
  (1, 2),
  (3, 1),
  (2, 1),
  (1, 2),
  (1, 1),
  (3, 1),
  (3, 2),
  (1, 1),
  (1, 1),
  (1, 1),
  (2, 1),
  (1, 1),
  (1, 1),
  (3, 1),
  (1, 2),
  (1, 1),
  (3, 1),
  (1, 6),
  (1, 3),
  (1, 1),
  (1, 1),
  (1, 7),
  (1, 6),
  (3, 1),
  (1, 1),
  (1, 2),
  (1, 7),
  (3, 2),
  (1, 1),
  (1, 6),
  (1, 6),
  (2, 1),
  (1, 2),
  (1, 1),
  (1, 1),
  (2, 1),
  (1, 1),
  (2, 1),
  (1, 7),
  (1, 1),
  (2, 1),
  (1, 7),
  (1, 1),
  (1, 2),
  (2, 1),
  (2, 6),
  (2, 1),
  (1, 7),
  (1, 1),
  (2, 1),
  (1, 2),
  (1, 2),
  (2, 1),
  (1, 7);

SELECT
  projects.title,
  statuses.title,
  COUNT(
    CASE
      WHEN tasks.project_id = projects.id
        AND tasks.status_id = statuses.id
      THEN 1
    END
  )
FROM projects
JOIN tasks ON projects.id = tasks.project_id
JOIN statuses ON statuses.id = tasks.status_id
GROUP BY projects.title, statuses.title
ORDER BY projects.title;