让我们考虑一下这张表格,指定一个人购买房产的次数。为多个值计算不同行的数量
+--------+----------+
| user | property |
+--------+----------+
| john | car |
| john | car |
| john | house |
| peter | car |
| peter | car |
| amanda | house |
| amanda | house |
+--------+----------+
我需要知道一辆车了多少次买了一次,一所房子了多少次买了一次,等事情是这样的:
+----------+---+---+
| property | 1 | 2 |
+----------+---+---+
| cars | 4 | 2 |
| house | 3 | 1 |
+----------+---+---+
- 多少次赛车买? 四,两个彼得和两个约翰。
- 一辆车买了两次多少次? 两个,为同样的家伙。
- 多少次房子是买? 三,二为阿曼达和一次约翰。
- 房子买了两次多少次?只有一次,为阿曼达
这是可能做到这一点只使用SQL查询?
- 我不在乎表现或骇人的方式。
- 有两个以上的频率。
有一组固定的时间一个人可以买房(5),所以它不是问题查询手动指定的列。我的意思是有没有问题,做这样的事情:
SELECT /* ... */ AS 1, /* ... */ AS 2, /* ... */, AS 3 /* ... */
太棒了!但是有一点需要注意的是,它告诉我某个用户购买了一个房产的次数。例如,如果** amanda **购买另一栋房屋,则房屋被购买**两次的次数将为0(即使阿曼达之前两次买了房子)。 仍然,足够接近,它仍然非常有用。如果没有别的东西出现,这是正确的答案。 – Veehmot 2013-02-27 01:04:35
您可以将'HAVING cnt = 2'更改为'HAVING cnt> = 2'。或添加另一个条款;在那里设置'HAVING cnt = 3'会给所有买过的人三倍。 :P – hjpotter92 2013-02-27 01:07:30
工作得很好,非常感谢! – Veehmot 2013-02-27 01:09:54