Mysql与StarRocks语法上的不同

 🐓 序言

StarRocks新一代极速全场景 MPP (Massively Parallel Processing) 数据库StarRocks 的愿景是能够让用户的数据分析变得更加简单和敏捷。用户无需经过复杂的预处理,可以用StarRocks 来支持多种数据分析场景的极速分析。

 🐓 语法区别

字符串操作函数(String Functions)

CONCAT_WS

MySQL: CONCAT_WS用于连接字符串,并可指定分隔符。

StarRocks: 不支持CONCAT_WS函数,但可以通过使用concat()和join()方法来实现相同效果。

示例

CONCAT()

将多个字符串连接起来。如果参数中任意一个值是 NULL,那么返回的结果为 NULL。

MySQL > select concat("a", "b");
+------------------+
| concat('a', 'b') |
+------------------+
| ab               |
+------------------+MySQL > select concat("a", "b", "c");
+-----------------------+
| concat('a', 'b', 'c') |
+-----------------------+
| abc                   |
+-----------------------+MySQL > select concat("a", null, "c");
+------------------------+
| concat('a', NULL, 'c') |
+------------------------+
| NULL                   |
+------------------------+

SUBSTRING_INDEX()

MySQL: 返回字符串中指定分隔符出现的第n个实例之前或之后的所有字符。
Starrocks: 不支持SUBSTRING_INDEX()函数,可以使用substring_index替代。 

示例:

Substring_Index()

-- 从左往右数截取第二个 `.` 分隔符前面的字符串。
mysql> select substring_index('https://www.starrocks.io', '.', 2);
+-----------------------------------------------------+
| substring_index('https://www.starrocks.io', '.', 2) |
+-----------------------------------------------------+
| https://www.starrocks                               |
+-----------------------------------------------------+-- Count 为负,从右往左数截取第二个 `.` 分隔符之后的字符串,
mysql> select substring_index('https://www.starrocks.io', '.', -2);
+------------------------------------------------------+
| substring_index('https://www.starrocks.io', '.', -2) |
+------------------------------------------------------+
| starrocks.io                                         |
+------------------------------------------------------+mysql> select substring_index("hello world", " ", 1);
+----------------------------------------+
| substring_index("hello world", " ", 1) |
+----------------------------------------+
| hello                                  |
+----------------------------------------+mysql> select substring_index("hello world", " ", -1);
+-----------------------------------------+
| substring_index('hello world', ' ', -1) |
+-----------------------------------------+
| world                                   |
+-----------------------------------------+-- Count 为 0,返回 NULL。
mysql> select substring_index("hello world", " ", 0);
+----------------------------------------+
| substring_index('hello world', ' ', 0) |
+----------------------------------------+
| NULL                                   |
+----------------------------------------+-- Count 大于 `delimiter` 实际出现的次数,返回整个字符串。
mysql> select substring_index("hello world", " ", 2);
+----------------------------------------+
| substring_index("hello world", " ", 2) |
+----------------------------------------+
| hello world                            |
+----------------------------------------+-- Count 大于 `delimiter` 实际出现的次数,返回整个字符串。
mysql> select substring_index("hello world", " ", -2);
+-----------------------------------------+
| substring_index("hello world", " ", -2) |
+-----------------------------------------+
| hello world                             |
+-----------------------------------------+

LENGTH()

MySQL: 返回字符串长度。

Starrocks:同样支持LENGTH()函数。

 示例:

LENGTH()

MySQL > select length("abc");
+---------------+
| length('abc') |
+---------------+
|             3 |
+---------------+MySQL > select length("中国");
+------------------+
| length('中国')   |
+------------------+
|                6 |
+------------------+

时间日期处理函数(Date and Time Functions)

YEARWEEK()

MySQL: 返回带有年份和周数组成的值。

Starrocks: 并不直接支持YEARWEEK()函数,但可以通过DATE_FORMAT(date, ‘%Y%u’)来达到类似效果

示例 :

DATE_FORMAT()

select date_format('2009-10-04 22:23:00', '%W %M %Y');
+------------------------------------------------+
| date_format('2009-10-04 22:23:00', '%W %M %Y') |
+------------------------------------------------+
| Sunday October 2009                            |
+------------------------------------------------+select date_format('2007-10-04 22:23:00', '%H:%i:%s');
+------------------------------------------------+
| date_format('2007-10-04 22:23:00', '%H:%i:%s') |
+------------------------------------------------+
| 22:23:00                                       |
+------------------------------------------------+select date_format('1900-10-04 22:23:00', '%D %y %a %d %m %b %j');
+------------------------------------------------------------+
| date_format('1900-10-04 22:23:00', '%D %y %a %d %m %b %j') |
+------------------------------------------------------------+
| 4th 00 Thu 04 10 Oct 277                                   |
+------------------------------------------------------------+select date_format('1997-10-04 22:23:00', '%H %k %I %r %T %S %w');
+------------------------------------------------------------+
| date_format('1997-10-04 22:23:00', '%H %k %I %r %T %S %w') |
+------------------------------------------------------------+
| 22 22 10 10:23:00 PM 22:23:00 00 6                         |
+------------------------------------------------------------+select date_format('1999-01-01 00:00:00', '%X %V');
+---------------------------------------------+
| date_format('1999-01-01 00:00:00', '%X %V') |
+---------------------------------------------+
| 1998 52                                     |
+---------------------------------------------+select date_format('2006-06-01', '%d');
+------------------------------------------+
| date_format('2006-06-01 00:00:00', '%d') |
+------------------------------------------+
| 01                                       |
+------------------------------------------+select date_format('2006-06-01', '%%%d');
+--------------------------------------------+
| date_format('2006-06-01 00:00:00', '%%%d') |
+--------------------------------------------+
| %01                                        |
+--------------------------------------------+

聚合函数(Aggregate Functions) 

COUNT(DISTINCT)

MySQL: 可以使用COUNT(DISTINCT)来计算唯一值的数量。

Starrocks: 目前并不支持COUNT(DISTINCT)函数。

SUM() 和 AVG()        

MySQL: 分别用于求和和平均值。

Starrocks: 同样支持SUM()和AVG()函数。

示例:

SUM()

1.创建表

CREATE TABLE IF NOT EXISTS employees (region_num    TINYINT        COMMENT "range [-128, 127]",id            BIGINT         COMMENT "range [-2^63 + 1 ~ 2^63 - 1]",hobby         STRING         NOT NULL COMMENT "upper limit value 65533 bytes",income        DOUBLE         COMMENT "8 bytes",sales       DECIMAL(12,4)  COMMENT "")DISTRIBUTED BY HASH(region_num);

2.插入数据 

INSERT INTO employees VALUES
(3,432175,'3',25600,1250.23),
(4,567832,'3',37932,2564.33),
(3,777326,'2',null,1932.99),
(5,342611,'6',43727,45235.1),
(2,403882,'4',36789,52872.4);

3.求和

MySQL > SELECT region_num, sum(sales) from employees
group by region_num;+------------+------------+
| region_num | sum(sales) |
+------------+------------+
|          2 | 52872.4000 |
|          5 | 45235.1000 |
|          4 |  2564.3300 |
|          3 |  3183.2200 |
+------------+------------+
4 rows in set (0.01 sec)

AVG()同Mysql一样 

GROUP_CONCAT()

MySQL: 可以使用GROUP_CONCAT来将多行数据拼接成一个字符串。

Starrocks: 目前并不支持GROUP_CONCAT函数。

GROUP BY ()

MySQL: 支持对结果集进行分组,并可以在SELECT子句中使用非聚合列。

Starrocks: 在SELECT子句中只能使用聚合列或者通过HAVING子句过滤后才能引用非聚合列。

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

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

相关文章

嵌入式驱动学习第一周——linux的休眠与唤醒

前言 本文介绍进程的休眠与唤醒。 嵌入式驱动学习专栏将详细记录博主学习驱动的详细过程,未来预计四个月将高强度更新本专栏,喜欢的可以关注本博主并订阅本专栏,一起讨论一起学习。现在关注就是老粉啦! 行文目录 前言1. 阻塞和非阻…

第二节 数学知识补充

一、线性代数 向量的 L 2 L_2 L2​范数(Euclidean范数/Frobenius范数)&矩阵的元素形式范数 向量的 L 2 L_2 L2​范数: ∣ ∣ x ∣ ∣ 2 ( ∣ x 1 ∣ 2 ⋯ ∣ x m ∣ 2 ) 1 2 ||x||_2(|x_1|^2\cdots|x_m|^2)^{\frac12} ∣∣x∣∣2​(∣…

Verilog参数、Verilog参数和属性冲突、整数处理

Verilog参数 Verilog参数执行以下操作: •允许您创建易于重用和扩展的参数化代码。 •使代码更可读、更紧凑、更易于维护。 •将此类功能描述为: ○ 总线尺寸 ○ 建模设计单元中某些重复元素的数量 •是常数。对于参数化模块的每个实例化&#xf…

电脑桌面便签哪个好,好用的电脑桌面便签推荐

在如今信息爆炸的时代,人们的工作和生活节奏越来越快,记事和备忘变得尤为重要。而电脑桌面便签作为一种方便快捷的记录工具,备受广大用户青睐。那么,电脑桌面便签哪个好,哪个更加出色呢? 作为一名人事专员…

CryoEM - 使用 cryoSPARC 基于单颗粒图像从头重构蛋白质三维结构

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://blog.csdn.net/caroline_wendy/article/details/136384544 基于冷冻电镜单颗粒图像重构蛋白质三维结构,利用冷冻电镜技术测定生物大分子结构的方法。原理是从冷冻电镜获得大量同一种蛋白质分子的二维投影图…

【数据结构】实现队列

大家好,我是苏貝,本篇博客带大家了解队列,如果你觉得我写的还不错的话,可以给我一个赞👍吗,感谢❤️ 目录 一. 队列的概念及结构二. 队列的实现队列的结构体初始化销毁队尾插入队头删除显示第一个节点的值…

【Java程序员面试专栏 算法思维】六 高频面试算法题:动态规划

一轮的算法训练完成后,对相关的题目有了一个初步理解了,接下来进行专题训练,以下这些题目就是汇总的高频题目,本篇主要聊聊回溯算法,主要就是排列组合问题,所以放到一篇Blog中集中练习 题目关键字解题思路时间空间零钱兑换动态规划+双重循环dp[i]表示兑换金额为i元的最少…

从0开始学习NEON(0)

1、前言 ​ 最近在学习NEON指令集,主要学习"单指令流,多数据流"的编程方式,在这之前主要是针对cuda编程进行学习。最近的一部分工作转移到了arm主板上,接触到了 ncnn这个开源项目,不得不佩服nihui的强大。在…

C# 线性插值

线性插值是一种常用的插值算法,适用于许多实际场景。 传感器数据处理:在传感器数据处理中,可能会出现数据点不连续或不均匀的情况。使用线性插值可以根据已知的数据点来估算在两个数据点之间的数值,从而填补数据中的缺失或不连续之…

iOS消息转发流程

当向Objc对象发送消息时,如果找到对象对应的方法,就会进入消息转发流程,给开发者提供一些最后的机会处理消息无法发送问题,以免出现程序崩溃。 1. 回调对象的resolveInstanceMethod方法,在这个方法中,允许开…

阿里云定价_ECS产品价格_云服务器收费标准 - 阿里云官方活动

2024年最新阿里云服务器租用费用优惠价格表,轻量2核2G3M带宽轻量服务器一年61元,折合5元1个月,新老用户同享99元一年服务器,2核4G5M服务器ECS优惠价199元一年,2核4G4M轻量服务器165元一年,2核4G服务器30元3…

logo设计软件及网站汇总

文章目录 一、智能设计logo的网站二、常用的logo设计软件 一、智能设计logo的网站 Canva:Canva是一个在线设计平台,提供了丰富的模板和设计工具,可以帮助用户轻松设计出专业水平的logo。 DesignEvo:DesignEvo是一个专业的在线log…

基于 LLaMA 和 LangChain 实践本地 AI 知识库

有时候,我难免不由地感慨,真实的人类世界,本就是一个巨大的娱乐圈,即使是在英雄辈出的 IT 行业。数日前,Google 正式对外发布了 Gemini 1.5 Pro,一个建立在 Transformer 和 MoE 架构上的多模态模型。可惜,这个被 Google 寄予厚望的产品并未激起多少水花,因为就在同一天…

动作生成学习笔记

目录 ReMoDiffus 检索和扩散 文字生运动 action生运动 ReMoDiffus 检索和扩散 ICCV 2023 | 重塑人体动作生成,融合扩散模型与检索策略的新范式ReMoDiffuse来了,根据文本生成动作 有例子和模型&

CSS 显示隐藏动画(动画失效问题)

就像这个动画一样的效果&#xff0c;div 先是隐藏的&#xff0c;点击按钮后显示并且有动画效果&#xff0c;隐藏的时候同样。 <button class"btn" id"btn">点击</button><div class"box" id"box"></div><s…

一些常用到的git命令

git stash -a //缓存所有文件 git checkout -b dev origin/dev //切换到dev分支上,接着跟远程的origin地址上的dev分支关联起来 //推送本地分支到远程仓库 git push origin localbranchname:remotebrancname git revert onefile //https://www.freecodecamp.org/news/git-re…

S2---FPGA-A7板级原理图硬件实战

视频链接 FPGA-A7板级系统硬件实战01_哔哩哔哩_bilibili FPGA-A7板级原理图硬件实战 基于XC7A100TFGG484的FPGA硬件设计流程图 A7核心板&#xff0c;是基于XILINX公司的ARTIX-7系列100T的XC7A100T,2FGG484I这款芯片开发的高性能核心板&#xff0c;具有高速&#xff0c;高带宽&a…

HashMap在多线程下形成环的死锁详解

1. HashMap的工作原理 HashMap是Java中基于哈希表的Map接口的非同步实现。它存储键值对&#xff0c;并允许使用null键和null值。HashMap通过使用键对象的hashCode()方法来决定键值对的存储位置。 2. 多线程环境下的问题 在多线程环境下&#xff0c;如果多个线程同时对HashMap进…

Android 签名机制

V1是内部文件单个签 但是增加apk文件目录下面随意增加文件并不会有影响,它只关心meta-info文件 mf汇总清单的各个文件sha256 V2 整个APK文件,按文件进行hash 那么便不能随便在这里面增加文件了,增加了签名分块&#xff08;不然签名信息存哪里&#xff09;这里涉及一个文件概念 …

如何修炼成“神医”——《OceanBase诊断系列》之一

本系列是基于OcenaBase 开发工程师在工作中的一些诊断经验&#xff0c;也欢迎大家分享相关经验。 1. 关于神医的故事 扁鹊&#xff0c;中国古代第一个被正史记载的医生&#xff0c;他的成才之路非常传奇。年轻时&#xff0c;扁鹊是一家客栈的主管。有一位名叫长桑君的客人来到…