【发布时间】:2016-06-17 12:09:48
【问题描述】:
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”。
-
好的,谢谢您的帮助。
标签: postgresql join