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.pswp.cn/news/713939.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/713939.shtml
英文地址,請注明出處:http://en.pswp.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;扁鵲是一家客棧的主管。有一位名叫長桑君的客人來到…