2012-08-16 90 views
1

我有以下表具有以下數據動態交叉表在MySQL

 

Year | Age Group | Male | Female 
2000 | 0 - 25 | 50 | 100 
2000 | 26 above | 40 | 75 
2001 | 0 - 25 | 150 | 86 
2001 | 26 above | 65 | 83 

我想在下面的格式

 
       | Male | Female 
2000   | 90  | 175 
     0 - 25 | 50  | 100 
     26 above | 40  | 75 
2001   | 215 | 169 
     0 - 25 | 150 | 86 
     26 above | 65  | 83 

我將是你非常感激創建一個跨標籤幫助。

+2

唯一的區別有你如何輸出它以後,它不會出來一樣,MySQL的,但你可以做到這一點很容易通過年份代碼的改變和以後輸出。 – BugFinder 2012-08-16 06:40:56

+0

我幾乎沒有看到任何區別,我也看不到任何一點這樣做。在MySQL端不輸出時這樣生成表。 – 2012-08-16 06:43:02

+0

它看起來像數據報告服務的任務。 – Devart 2012-08-16 06:57:00

回答

3

SQLFiddle example

select * from 
(
select year,ageGroup,male,female from t 
union all 
select year,'' ageGroup,sum(male) male,sum(female) female 
from t group by year 
) st 
order by year,agegroup 
+0

@Matrich:如果這個答案適合你,請[標記爲已接受]( http://stackoverflow.com/faq#howtoask) – valex 2012-08-17 11:24:25

+0

我已添加另一列國家。我如何按年份,國家,年齡組排列相同的分組,然後以男性,女性爲列。 – Matrich 2012-08-21 12:08:29

+0

這是[年份,國家,AGEGROUP示例](http://sqlfiddle.com/#!2/292c6/3) – valex 2012-08-21 13:08:13