Impala中多列转为一行

时间:2022-12-21 21:39:43

之前有一位朋友咨询我,Impala中怎样实现将多列转为一行,事实上Impala中自带函数能够实现,不用自己定义函数。

以下我開始演示:

-bash-4.1$ impala-shell

Starting Impala Shell without Kerberos authentication

Connected to cdha:21000

Server version: impalad version 1.4.2-cdh5 RELEASE (build eac952d4ff674663ec3834778c2b981b252aec78)

Welcome to the Impala shell. Press TAB twice to see a list of available commands.





Copyright (c) 2012 Cloudera, Inc. All rights reserved.

(Shell build version: Impala Shell v1.4.2-cdh5 (eac952d) built on Tue Sep 16 19:15:40 PDT 2014)

[cdha:21000] > create table student(name string,subject string,score decimal(4,1));    -------------创建演示表:student(脱离学校四年了。还不忘自己是学生^_^)

Query: create table student(name string,subject string,score decimal(4,1))





Returned 0 row(s) in 1.97s

[cdha:21000] > insert into student values('xiaoming','math',89.5); ----------------插入演示数据 (小明和花花的学习成绩,他们感情比較好)

Query: insert into student values('xiaoming','math',89.5)

Inserted 1 rows in 2.56s

[cdha:21000] > insert into student values('xiaoming','english',92);

Query: insert into student values('xiaoming','english',92)

Inserted 1 rows in 0.39s

[cdha:21000] > insert into student values('xiaoming','chinese',98);

Query: insert into student values('xiaoming','chinese',98)

Inserted 1 rows in 0.42s

[cdha:21000] > insert into student values('huahua','chinese',80);

Query: insert into student values('huahua','chinese',80)

Inserted 1 rows in 0.40s

[cdha:21000] > insert into student values('huahua','math',89.5);

Query: insert into student values('huahua','math',89.5)

Inserted 1 rows in 0.29s

[cdha:21000] > select * from student;    ----------每次考完试,老师报分数时都非常紧张    

Query: select * from student

+----------+---------+-------+

| name     | subject | score |

+----------+---------+-------+

| xiaoming | english | 92.0  |

| huahua   | chinese | 80.0  |

| xiaoming | chinese | 98.0  |

| huahua   | math    | 89.5  |

| xiaoming | math    | 89.5  |

+----------+---------+-------+

Returned 5 row(s) in 0.23s





[cdha:21000] > select name,group_concat(subject,',') from student group by  name;  ------------小试牛刀,看到了吧,多列拼接到一起了

Query: select name,group_concat(subject,',') from student group by  name

+----------+----------------------------+

| name     | group_concat(subject, ',') |

+----------+----------------------------+

| xiaoming | english,chinese,math       |

| huahua   | chinese,math               |

+----------+----------------------------+

Returned 2 row(s) in 0.38s

------------以下演示有价值的演示样例,显示高手之招,呵呵

------------这样就能够在一行上面,看到小明和花花的各科成绩了

[cdha:21000] > select name,group_concat(concat_ws('=',subject,cast(score as string)),',') from student group by  name;  

Query: select name,group_concat(concat_ws('=',subject,cast(score as string)),',') from student group by  name

+----------+-------------------------------------------------------------------+

| name     | group_concat(concat_ws('=', subject, cast(score as string)), ',') |

+----------+-------------------------------------------------------------------+

| xiaoming | english=92.0,chinese=98.0,math=89.5                               |

| huahua   | chinese=80.0,math=89.5                                            |

+----------+-------------------------------------------------------------------+

Returned 2 row(s) in 0.39s

[cdha:21000] >

Hive的行列转换请查看: http://blog.csdn.net/jiangshouzhuang/article/details/46810529

Impala中多列转为一行的更多相关文章

  1. 在论坛中出现的比较难的sql问题:37(动态行转列 某一行数据转为列名)

    原文:在论坛中出现的比较难的sql问题:37(动态行转列 某一行数据转为列名) 所以,觉得有必要记录下来,这样以后再次碰到这类问题,也能从中获取解答的思路.

  2. C#对Excel中指定一列或一行实现隐藏或显示!

    C#对Excel中指定一列或一行实现隐藏或显示!不会,求指导!

  3. 选择列表中的列无效,因为该列没有包含在聚合函数或 GROUP BY 子句中

    选择列表中的列无效,因为该列没有包含在聚合函数或 GROUP BY 子句中 T-SQL核心语句形式: SELECT     --指定要选择的列或行及其限定  [INTO ]      --INTO子句 ...

  4. Oracle中对列加密的方法

    Oracle中对列加密的方法 2011-12-22 17:21:13 分类: Linux Oracle支持多种列加密方式: 1,透明数据加密(TDE):create table encrypt_col ...

  5. DataGridView合并单元格(一列或一行)

    #region"合并单元格的测试(一列或一行)" // int?是搜索一种类型(可空类型),普通的int不能为null,而用int?,其值可以为null //private int ...

  6. 将excel中某列数据中,含有指定字符串的记录取出,并生成用这个字符串命名的txt文件

    Python 一大重要的功能,就是可处理大量数据,那分不开的即是使用Excel表格了,这里我做下学习之后的总结,望对我,及广大同仁们是一个帮助Python处理Excel数据需要用到2个库:xlwt 和 ...

  7. 神奇的 SQL 之层级 → 为什么 GROUP BY 之后不能直接引用原表中的列

    前言 开心一刻 感觉不妙呀,弟弟舔它! 不该舔的,舔到怀疑人生了...... GROUP BY 后 SELECT 列的限制 标准 SQL 规定,在对表进行聚合查询的时候,只能在 SELECT 子句中写 ...

  8. [转]神奇的 SQL 之层级 → 为什么 GROUP BY 之后不能直接引用原表中的列

    原文:https://www.cnblogs.com/youzhibing/p/11516154.html 这篇文章,对group by的讲解不错 -------------------------- ...

  9. mysql explain中的列

    参考:<高性能mysql>附录D EXPLAIN MySql将Select查询分为简单和复杂类型,复杂类型分为3大类:简单子查询,所谓的派生表(在派生表的子查询),以及UNION查询. 列 ...

随机推荐

  1. JavaScript模板引擎artTemplate&period;js——结语

    再次首先感谢模板的作者大神,再次放出github的地址:artTemplate性能卓越的js模板引擎 然后感谢博客园的一位前辈,他写的handlebars.js模板引擎教程,对我提供了很大的帮助,也是 ...

  2. jQuery-1&period;9&period;1源码分析系列(十六)ajax——ajax框架

    ajax的介绍就不多说了,点击可看. 既然是ajax框架,那么闲谈一谈jQuery的ajax处理思路. 现在的浏览器都支持ajax,只不过不同的浏览器使用方法可能有不同(IE使用new window. ...

  3. 【BZOJ-3653】谈笑风生 DFS序 &plus; 可持久化线段树

    3653: 谈笑风生 Time Limit: 20 Sec  Memory Limit: 512 MBSubmit: 628  Solved: 245[Submit][Status][Discuss] ...

  4. spark HA

    spark HA 的两种实现: 基于文件系统的单点恢复(Single-Node Recovery with Local File System) 基于zookeeper的Standby Masters ...

  5. MySQL推出Applier,可实时复制数据到Hadoop

    MySQL复制操作可以将数据从一个MySQL服务器(主)复制到其他的一个或多个MySQL服务器(从).试想一下,如果从服务器不再局限为一个MySQL服务器,而是其他任何数据库服务器或平台,并且复制事件 ...

  6. Java笔记:内部类

    1.把一个类放在另一类内部定义,这个定义在其他类里面的类就叫做内部类,包含内部类的类叫做外部类.内部类成员可以直接访问外部类的私有数据,但是外部类不能访问内部类的实现细节. 2.非静态内部类(没有st ...

  7. mysql varchar vs oracle varchar2

    1.错误提示: mysql的Data truncation: Data too long for column 'path' at row 1 错误原因: 1.字段过长而导致出错的, 2. 可能是因为 ...

  8. canutils上板测试问题记录

    ltp-ddt运行can_loopback时出错 pan(1881): Must supply a file collection or a command 原因runtest/ddt/can_loo ...

  9. fatal&colon; unable to access &&num;39&semi;https&colon;&sol;&sol;xxxxx&&num;39&semi;&colon; SSL connect error

    /********************************************************************** * fatal: unable to access 'h ...

  10. 回文自动机 &plus; DFS --- The 2014 ACM-ICPC Asia Xi’an Regional Contest Problem G&period;The Problem to Slow Down You

    The Problem to Slow Down You Problem's Link: http://acm.hust.edu.cn/vjudge/problem/viewProblem.actio ...