SELECT user_id
	,sum(case when class='a' then score else 0 end)  as a
	,sum(case when class='b' then score else 0 end)  as b
	,sum(case when class='c' then score else 0 end)  as c
FROM uyun_udap.student
group by user_id 

orcale中的实现方式(PIVOT函数)

SELECT * FROM uyun_udap.student
PIVOT(
    sym(score)
    FOR class
                                    假设我们有一个名为"Employees"的表格,其中包含"FirstName"、"LastName"和"Salary"这三个列。我们将在查询结果中自定义这些列的列名。在SQL Server中,通过使用动态SQL语句,我们可以在查询结果中自定义列名。语句来选择"Employees"表格的"FirstName"、"LastName"和"Salary"列,并使用。关键字为每个列指定了自定义的列名。执行以上代码后,将返回一个查询结果,其中包含自定义的列名。关键字来指定自定义的列名,我们可以根据需要灵活地定义列名。
SELECT a.1 as 别名1,a.2 as 别名2,a.3 as 别名3,a.... as 别名...,
    table_name  ---就是数据源
---开始使用函数
PIVOT
---这里可用聚合函数来统计
sum(要统计的列名)
--列名1就是要行转列的列名
IN ([1],[2],[3],[...])---1等来自列名1的
) AS a  ---起个名字
<可选的 ORDER BY 子句>; 
                                    【SQL从入门到精通分析系列文章】为实际开发中的点点滴滴的总结,从最最简单的SQL 查询 到 综合分析查询在分析 SQL 时,也会同时分析 mybatis 、Hibernate 中的相关操作SQL从入门到精通分析系列文章 本节讲述 基本的 select 查询单表数据语句1 从单表中查询所有的行和列查询表中所有的数据select 在 SQL 中,字符 "*" 具有特殊的含义,使用用它,将从指定的表中...
hive.partition.pruning
分区裁剪检查,查询分区表时如果不指定分区编译器是否报错(A strict value for this variable indicates that an error is thrown by the compiler in case no partition predicate is provided on a...