-1
我有3個表:如何GROUP BY成單獨的列
- 第一個包含個人信息。相關欄目是
personID
。 - 第二個包含一個人可以做的練習。例如有一個
exID
3個練習。 - 第三個包含一個人(
personID
)在練習中達到的分數(exID
)。所以這裏的每一行代表一個人的考試。但不是每個人都需要參加每個考試。
我想什麼都與列personID
,exam_one
,exam_two
,exam_three
,...(持續的,這取決於有多少考試有)的結果。結果的每一行都應包含personID
以及相應考試的分數。
對於沒有采取的考試應該有NULL或什麼的。
爲表人示例:對於練習表
personID | Name | ...
-------------------
1 | Max |
2 | Peter |
示例:點表
exID | exName | maxPoints | ...
-------------------------------
1 | exam1 | 20
2 | exam2 | 25
3 | exam3 | 20
實施例:
personID (fkey) | exID (fkey) | points
----------------------------------------
1 | 1 | 12.5
1 | 3 | 10
2 | 1 | 5
2 | 2 | 8.5
2 | 3 | 10
祝結果:
personId | exam1 | exam2 | exam3
------------------------------------
1 | 12.5 | NULL | 10
2 | 5 | 8.5 | 10
有沒有辦法做到這一點?我使用PostgreSQL的
很多方法可以做到這一點,是的。請提供一個迄今爲止嘗試過的例子。 – Ryan
請提供架構,示例數據和所需輸出。 – RedFilter
有數據透視表,但是你的問題缺乏相關信息,比如DBMS和表結構。 http://msdn.microsoft.com/en-us/library/ms177410(v=sql.105).aspx – GolezTrol