user
---------------------------
| ID | Name |
---------------------------
| 1 | Jim Rice |
| 2 | Wade Boggs |
| 3 | Bill Buckner |
---------------------------
at_bats
----------------------
| ID | User | Bases |
----------------------
| 1 | 1 | 2 |
| 2 | 2 | 1 |
| 3 | 1 | 2 |
| 4 | 3 | 0 |
| 5 | 1 | 3 |
----------------------
我想要什麼我的查詢做的就是不同基值的計數連接表所示:加入表和計算值不同的情況下
count_of_hits
---------------------
| ID | 1B | 2B | 3B |
---------------------
| 1 | 0 | 2 | 1 |
| 2 | 1 | 0 | 0 |
| 3 | 0 | 0 | 0 |
---------------------
我有一個查詢我在哪裏能夠單獨獲得基地,但除非我做了一些複雜的聯合,否則不是全部,我想會有更好的方法。這雖然基本查詢:
SELECT id, COUNT(ab.*)
FROM user
LEFT OUTER JOIN (SELECT * FROM at_bats WHERE at_bats.bases=2) ab ON ab.user=user.id
你要轉動你的數據。 SO上有很多問題和答案。搜索「crosstab」或「pivot」。 – Patrick
好的,謝謝你的幫助。 – Rob
[PostgreSQL 9.3:Pivot table]的可能重複(http://stackoverflow.com/questions/28804776/postgresql-9-3-pivot-table) – Patrick