讓我們考慮一下這張表格,指定一個人購買房產的次數。爲多個值計算不同行的數量
+--------+----------+
| 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