Número de contagem de linhas distintas para vários valores

Vamos considerar esta tabela especificando quantas vezes uma pessoa comprou uma propriedade.

+--------+----------+
|  user  | property |
+--------+----------+
| john   | car      |
| john   | car      |
| john   | house    |
| peter  | car      |
| peter  | car      |
| amanda | house    |
| amanda | house    |
+--------+----------+

Eu preciso saber quantas vezes um carro foi comprado uma vez, quantas vezes uma casa foi comprada uma vez, etc. Algo parecido com isto:

+----------+---+---+
| property | 1 | 2 |
+----------+---+---+
| cars     | 4 | 2 |
| house    | 3 | 1 |
+----------+---+---+
Quantas vezes um carro foi comprado?Quatro, dois paraPeter e dois paraJohn.Quantas vezes um carro foi comprado duas vezes?Doispara os mesmos caras.Quantas vezes uma casa foi comprada?Três, dois paraamanda e uma vez paraJohn.Quantas vezes uma casa foi comprada duas vezes? Somenteuma vez, paraamanda

Isso é possível fazer isso apenas usando consultas SQL?

Eu não me importo com desempenho ou maneiras estranhas.Existem mais de duas frequências.

Há um conjunto fixo de tempo que uma pessoa pode comprar uma propriedade (5), portanto, não é problema especificar as colunas manualmente na consulta. Quer dizer, não há problema em fazer algo como:

SELECT /* ... */ AS 1, /* ... */ AS 2, /* ... */, AS 3 /* ... */

questionAnswers(7)

yourAnswerToTheQuestion