Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL中的数据透视问题_Sql_Oracle - Fatal编程技术网

SQL中的数据透视问题

SQL中的数据透视问题,sql,oracle,Sql,Oracle,我对桌子的旋转有点问题。在这种情况下,你能找个人给点建议吗 我的桌子如下所示: AgeRange Male Female 21-30 15 21-30 11 31-40 25 41-50 18 41-50 22 51-60 32 我想通过删除年龄范围中的重复行,如下所示 AgeRange Male F

我对桌子的旋转有点问题。在这种情况下,你能找个人给点建议吗

我的桌子如下所示:

 AgeRange       Male    Female
  21-30         15
  21-30                  11
  31-40         25
  41-50         18
  41-50                  22
  51-60         32
我想通过删除年龄范围中的重复行,如下所示

 AgeRange       Male    Female
 21-30           15       11
 31-40           25
 41-50           18       22
 51-60           32
我在下面用

 PIVOT (
 SUM (AgeRange) 
 FOR [AgeRange] IN ([MALE], [FEMALE])
 )
 AS AGE

但是它不起作用。

看起来您的数据已经包含在
男性
女性
列中,因此如果您想按年龄范围获得这些列的总和,只需使用聚合和
分组依据

SELECT AgeRange,
  sum(Male) as Male,
  sum(Female) as Female
FROM <yourtable>
GROUP BY AgeRange
选择Agrange,
总和(男性)为男性,
sum(女性)为女性
从
按Agrange分组
PIVOT
用于将数据行转换为列,但您似乎已经有了列

** 按年龄范围顺序按年龄范围从年龄范围组中选择年龄范围、最大值(男性)、最大值(女性); **