impala中group_concat()函数无法对内容进行order by

news2024/11/25 10:29:14

描述:

使用的是impala数据库,假设有四笔数据,是无序的,业务上要求将其行转列成一行数据,并且里面的数据要按从小到大排序。

过程:

猜测:

数据库Oracle、Mysql、MSsql等支持group_concat中使用order by,那么impala支持不支持呢?实践一下发现:Impala不支持group_concat中使用order by

总结:常见数据库Oracle、Mysql、MSsql等支持group_concat中使用order by,但是Impala不支持group_concat中使用order by

方法一:

尝试先对这四笔数据进行排序,再进行行转列,但发现最终出来的数据还是达不到预期:

总结:内层的order by语句单独使用不会影响结果集仅排序在执行期间就被代码分析器给优化掉了。内层的order by要影响结果集,可以配合limit使用。

with temp as (
select t.*
from (
select '5' as id 
union all 
select '2' as id 
union all 
select '3' as id
union all 
select '4' as id ) t 
order by id 
limit 4
)
select group_concat(id)
from temp;

 方法二:

采用 row_number + concat_ws + group_concat,达到预期效果。

注意:如果是业务强烈要求、或者数据量不会太大的话,建议这么处理

步骤:
1、聚合前的数据筛选,完成数据过滤
2、开窗,row_number进行数据排序,添加序号,并cast转为字符串;
3、多字段组合,concat_ws进行聚合字段和序号字段的拼接,并replace掉序号为空串(concat_ws只支持字符串)
4、单字段聚合,group_concat进行最后的数据拼接
5、输出结果!

with temp as (
select '5' as id 
union all 
select '2' as id 
union all 
select '3' as id
union all 
select '4' as id ),
rn as (select id,cast(row_number() over(order by id) as string) as rn from temp),
re as (select group_concat(concat_ws('',id,replace(rn,rn,''))) id from rn)
select * 
from re;

总结:

1、 内层的order by语句单独使用不会影响结果集仅排序在执行期间就被代码分析器给优化掉了。内层的order by要影响结果集,可以配合limit使用。

2、如果是业务强烈要求、或者数据量不会太大的话,采用 row_number + concat_ws + group_concat,达到预期效果。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/596348.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

依赖倒置原则:高层代码和底层代码,到底谁该依赖谁?

前言 上一篇,我们讲了 ISP 原则,知道了在设计接口的时候,我们应该设计小接口,不应该让使用者依赖于用不到的方法。 依赖这个词,程序员们都好理解,意思就是,我这段代码用到了谁,我就…

签名支持全球管控AI 三巨头侧漏“求生欲”

又一封“群星云集”警示AI风险的公开信来了,这封信的内容简短但措辞炸裂:减轻 AI 带来的灭绝风险,应该与管控流行病和核战争等其他社会级规模的风险一样,成为一项全球优先事项。 5月30日,这纸原文只有22个单词的声明&…

核心交换机的四种关键技术:链路聚合、冗余、堆叠和热备份,真简单!

你好,这里是网络技术联盟站。 当涉及到核心交换机的关键技术,如链路聚合、冗余、堆叠和热备份时,下面更详细地介绍每个技术的工作原理和优势。 1. 链路聚合 链路聚合是一种技术,用于将多个物理链路组合成一个逻辑链路&#xff0…

详解Java枚举

一、知识点 二、概念 enum 的全称为 enumeration, 是 JDK 1.5 中引入的新特性。 在Java中,被 enum 关键字修饰的类型就是枚举类型。形式如下: enum Color { RED, GREEN, BLUE }如果枚举不添加任何方法,枚举值默认为从0开始的有…

CSS 选择器的常见用法

前言 CSS在编写代码的时候有很多种样式,和和HTML,JS相似,他们都是运行在浏览器中的,下面就介绍一下CSS选择器的常见用法。 标签选择器使用标签名把页面中所有同名标签都选中类选择器使用.类名的方式对应一组CSS属性id选择器使用 …

小米再度登上《焦点访谈》!中关村论坛展科技风采

5月30日下午,以“开放合作共享未来”为主题的2023中关村论坛展览(科博会)在京圆满落幕。小米作为科技领军企业参展,设立“科技创新、绿色低碳”主题展区。 小米携智能手机、可穿戴设备、智能家居以及全尺寸人形仿生机器人CyberOne…

【ROS】ROS2编程示例:话题订阅-发布-C++版

1、准备 1)安装ROS2 【ROS】Ubuntu22.04安装ROS2(Humble Hawksbill) 2)ROS2命令 【ROS】ROS2命令行工具详解 3)配置工作空间 【ROS】ROS2中的概念和名词解释中第一节:工作空间 workspace 4)…

MySQL-12-SQL优化

一、MySQL体系结构 1.1、体系结构 # 1.2、查询执行流程 参考:https://www.cnblogs.com/xfeiyun/p/15899990.html 1.3、组件说明 管理工具:MySQL服务软件安装后提供的命令连接池:检查本机是否有空闲资源(线程,内存&…

Geoffrey Hinton、姚期智、张钹、Sam Altman等专家共话AI安全与对齐丨2023智源大会议程公开...

6月9日,2023北京智源大会,将邀请AI领域的探索者、实践者、以及关心智能科学的每个人,共同拉开未来舞台的帷幕,你准备好了吗?与会知名嘉宾包括,图灵奖得主Yann LeCun、OpenAI创始人Sam Altman、图灵奖得主Ge…

Linux教程——Linux和UNIX的关系及区别(详解版)

UNIX 与 Linux 之间的关系是一个很有意思的话题。在目前主流的服务器端操作系统中,UNIX 诞生于 20 世纪 60 年代末,Windows 诞生于 20 世纪 80 年代中期,Linux 诞生于 20 世纪 90 年代初,可以说 UNIX 是操作系统中的"老大哥&…

开始梳理大学课程体系(二)--万字数据结构总结上

数据结构总结 第一章 概述1.1 基本概念和术语1.2 数据结构1. 2.1 逻辑结构1.2.2 存储结构 1.3 数据类型和抽象数据类型1.3.1 数据类型1.3.2 抽象数据类型 1.4 算法和算法分析1.4.1 算法的定义及特性1.4.2 评价算法优劣的基本标准1.4.3 算法的时间复杂度1.4.4 算法的空间复杂度 …

chatgpt赋能python:用Python优化交通

用Python优化交通 作为一种功能强大的编程语言,Python已经被广泛应用于各个领域。交通领域也不例外。在交通领域,Python可以发挥重要作用,帮助优化交通运行,提高安全性和效率。 实时路况预测 Python可以通过机器学习算法来对实…

【Linux】进程与文件系统(详细解析)

文章目录 1.前言(提出问题)2.认识问题3.回顾c文件接口4.学习系统文件IOopen函数第一个参数第二个参数第三个参数函数的返回值 write函数read函数close函数 5.文件描述符 1.前言(提出问题) 在C语言阶段学习文件操作的时候&#xf…

基于PP-OCRv3的车牌检测和识别

本项目基于百度飞桨AI Studio平台进行实现,百度出品的深度学习平台飞桨(PaddlePaddle)是主流深度学习框架中一款完全国产化的产品,与Google TensorFlow、Facebook Pytorch齐名。2016 年飞桨正式开源,是国内首个全面开源…

【SpringMVC】| 域对象共享数据

目录 前期准备 域对象共享数据 一:向request域共享数据(五种方法) 1. 使用ServletAPI向request域对象共享数据(了解) 2. 使用ModelAndView向request域对象共享数据 3. 使用Model向request域对象共享数据 4. 使用…

chatgpt赋能python:Python代码怎么找?这里介绍几种方法

Python代码怎么找?这里介绍几种方法 在编写Python程序的时候,经常会遇到需要查找已有代码的情况。那么,在这里,我们将介绍几种查找Python代码的方法,希望能对大家有所帮助。 使用文本编辑器的查找功能 在大多数文本…

3.场(field)

目录 1.复习 2.引言 3.数量场 1.概念 2.例题 4.矢量场 1.概念 2.例题 5.坐标变换和坐标单位矢 1.坐标变换 2.单位矢 1.复习 2.引言 如果说矢量分析研究的是矢量的时间变化,那么场就是它的空间变化. 场是客观存在的,杨振宁先生在总结20世…

Spring Boot 3.1中如何整合Spring Security和Keycloak

在今年2月14日的时候,Keycloak 团队宣布他们正在弃用大多数 Keycloak 适配器。其中包括Spring Security和Spring Boot的适配器,这意味着今后Keycloak团队将不再提供针对Spring Security和Spring Boot的集成方案。但是,如此强大的Keycloak&…

数据库|TiDB 数据库大版本升级-基于TiCDC异机升级

作者:高文峰 | 神州数码云基地TiDB团队成员 目录 一、前言 二、升级架构图 三、升级流程 1.下游TiDB集群部署过程 2. 上游TiCDC节点的扩容 3. 上游数据全备恢复到下游 4. TiCDC启用正向同步任务 5. 应用停服务,tidb 无业务会话连接 6. 确认数据…

2023年6月跟产品开发专家学NPDP产品经理认证课到这里

NPDP产品经理国际资格认证是国际公认的唯一的新产品开发专业认证,集理论、方法与实践为一体的全方位的知识体系,为公司组织层级进行规划、决策、执行提供良好的方法体系支撑。 我们针对互联网时代的个人、互联网企业、与传统企业推出一系列学习。 课程从…