前言 传统关系型数据库中,无论是Oracle(11g之后)还是SQLserver(2005之后),都自带了Pivot函数实现行转列功能,本文主要讲述在Hive中实现行转列的两种方式。 传统数据库方式 这种方式是借鉴在Oracle或者SQLserver在支持Pivot函数之前实现行转列的方式,实际上语法没有什么变化,只是换成了Hive。 with testtable(select 1 id
语法: Select * From 表名-- 这个表应该是下面聚合之后的表,而不是原理的行表PIVOT ( SUM('要合并的列1'),MAX('要合并的列2'),.... --操作的列 FOR 将值转换成列的列名 IN (列值1,列值2,列值3,列值4....) ) 示例: with t as ( Select '桃子' name, 300 nums ,1 jidu from d
SQL语句行列转换的两种方法 case...when和pivot函数应用,运用pivot 函数只支持数据库版本2005以上的。一般运用case when else end 的方法比较多,比较普遍 /*创建数据库*/ CREATE DATABASE tmp go USE tmp go/*创建数据库测试表*/CREATE TABLE [Scores] ( [ID] INT