Doris SQL 特技

group_concat

description

Syntax

VARCHAR GROUP_CONCAT([DISTINCT] VARCHAR str[, VARCHAR sep] [ORDER BY { col_name | expr} [ASC | DESC])
該函數是類似于 sum() 的聚合函數,group_concat 將結果集中的多行結果連接成一個字符串。第二個參數 sep 為字符串之間的連接符號,該參數可以省略。該函數通常需要和 group by 語句一起使用。

mysql> select value from test;
+-------+
| value |
+-------+
| a     |
| b     |
| c     |
| c     |
+-------+mysql> select GROUP_CONCAT(value) from test;
+-----------------------+
| GROUP_CONCAT(`value`) |
+-----------------------+
| a, b, c, c               |
+-----------------------+mysql> select GROUP_CONCAT(DISTINCT value) from test;
+-----------------------+
| GROUP_CONCAT(`value`) |
+-----------------------+
| a, b, c               |
+-----------------------+mysql> select GROUP_CONCAT(value, " ") from test;
+----------------------------+
| GROUP_CONCAT(`value`, ' ') |
+----------------------------+
| a b c c                    |
+----------------------------+mysql> select GROUP_CONCAT(value, NULL) from test;
+----------------------------+
| GROUP_CONCAT(`value`, NULL)|
+----------------------------+
| NULL                       |
+----------------------------+SELECT abs(k3), group_concat(distinct cast(abs(k2) as varchar) order by abs(k1), k5) FROM bigtable group by abs(k3) order by abs(k3);     +------------+-------------------------------------------------------------------------------+
| abs(`k3`)  | group_concat(DISTINCT CAST(abs(`k2`) AS CHARACTER), ORDER BY abs(`k1`), `k5`) |
+------------+-------------------------------------------------------------------------------+
|        103 | 255                                                                           |
|       1001 | 1989, 1986                                                                    |
|       1002 | 1989, 32767                                                                   |
|       3021 | 1991, 32767, 1992                                                             |
|       5014 | 1985, 1991                                                                    |
|      25699 | 1989                                                                          |
| 2147483647 | 255, 1991, 32767, 32767                                                       |
+------------+-------------------------------------------------------------------------------+

row_number

description

為每個 Partition 的每一行返回一個從1開始連續遞增的整數。與 RANK() 和 DENSE_RANK() 不同的是,ROW_NUMBER() 返回的值不會重復也不會出現空缺,是連續遞增的。

ROW_NUMBER() OVER(partition_by_clause order_by_clause)
select x, y, row_number() over(partition by x order by y) as rank from int_t;| x | y    | rank     |
|---|------|----------|
| 1 | 1    | 1        |
| 1 | 2    | 2        |
| 1 | 2    | 3        |
| 2 | 1    | 1        |
| 2 | 2    | 2        |
| 2 | 3    | 3        |
| 3 | 1    | 1        |
| 3 | 1    | 2        |
| 3 | 2    | 3        |

timestampdiff

description

Syntax

INT TIMESTAMPDIFF(unit, DATETIME datetime_expr1, DATETIME datetime_expr2)

返回datetime_expr2?datetime_expr1,其中datetime_expr1和datetime_expr2是日期或日期時間表達式。

結果(整數)的單位由unit參數給出。interval的單位由unit參數給出,它應該是下列值之一:

SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, or YEAR。

MySQL> SELECT TIMESTAMPDIFF(MONTH,'2003-02-01','2003-05-01');
+--------------------------------------------------------------------+
| timestampdiff(MONTH, '2003-02-01 00:00:00', '2003-05-01 00:00:00') |
+--------------------------------------------------------------------+
|                                                                  3 |
+--------------------------------------------------------------------+MySQL> SELECT TIMESTAMPDIFF(YEAR,'2002-05-01','2001-01-01');
+-------------------------------------------------------------------+
| timestampdiff(YEAR, '2002-05-01 00:00:00', '2001-01-01 00:00:00') |
+-------------------------------------------------------------------+
|                                                                -1 |
+-------------------------------------------------------------------+MySQL> SELECT TIMESTAMPDIFF(MINUTE,'2003-02-01','2003-05-01 12:05:55');
+---------------------------------------------------------------------+
| timestampdiff(MINUTE, '2003-02-01 00:00:00', '2003-05-01 12:05:55') |
+---------------------------------------------------------------------+
|                                                              128885 |
+---------------------------------------------------------------------+

array_distinct

description

Syntax

ARRAY<T> array_distinct(ARRAY<T> arr)

返回去除了重復元素的數組,如果輸入數組為NULL,則返回NULL。

notice

僅支持向量化引擎中使用

mysql> select k1, k2, array_distinct(k2) from array_test;
+------+-----------------------------+---------------------------+
| k1   | k2                          | array_distinct(k2)        |
+------+-----------------------------+---------------------------+
| 1    | [1, 2, 3, 4, 5]             | [1, 2, 3, 4, 5]           |
| 2    | [6, 7, 8]                   | [6, 7, 8]                 |
| 3    | []                          | []                        |
| 4    | NULL                        | NULL                      |
| 5    | [1, 2, 3, 4, 5, 4, 3, 2, 1] | [1, 2, 3, 4, 5]           |
| 6    | [1, 2, 3, NULL]             | [1, 2, 3, NULL]           |
| 7    | [1, 2, 3, NULL, NULL]       | [1, 2, 3, NULL]     |
+------+-----------------------------+---------------------------+mysql> select k1, k2, array_distinct(k2) from array_test01;
+------+------------------------------------------+---------------------------+
| k1   | k2                                       | array_distinct(`k2`)      |
+------+------------------------------------------+---------------------------+
| 1    | ['a', 'b', 'c', 'd', 'e']                | ['a', 'b', 'c', 'd', 'e'] |
| 2    | ['f', 'g', 'h']                          | ['f', 'g', 'h']           |
| 3    | ['']                                     | ['']                      |
| 3    | [NULL]                                   | [NULL]                    |
| 5    | ['a', 'b', 'c', 'd', 'e', 'a', 'b', 'c'] | ['a', 'b', 'c', 'd', 'e'] |
| 6    | NULL                                     | NULL                      |
| 7    | ['a', 'b', NULL]                         | ['a', 'b', NULL]          |
| 8    | ['a', 'b', NULL, NULL]                   | ['a', 'b', NULL]    |
+------+------------------------------------------+---------------------------+

split_by_string

description

Syntax

ARRAY<STRING> split_by_string(STRING s, STRING separator) 將字符串拆分為由字符串分隔的子字符串。它使用多個字符的常量字符串分隔符作為分隔符。如果字符串分隔符為空,它將字符串拆分為單個字符數組。

Arguments

separator — 分隔符是一個字符串,是用來分割的標志字符. 類型: String

s — 需要分割的字符串. 類型: String

Returned value(s)

返回一個包含子字符串的數組. 以下情況會返回空的子字符串:

需要分割的字符串的首尾是分隔符;

多個分隔符連續出現;

需要分割的字符串為空,而分隔符不為空.

Type: Array(String)

notice

僅支持向量化引擎中使用

select split_by_string('a1b1c1d','1');
+---------------------------------+
| split_by_string('a1b1c1d', '1') |
+---------------------------------+
| ['a', 'b', 'c', 'd']            |
+---------------------------------+select split_by_string(',,a,b,c,',',');
+----------------------------------+
| split_by_string(',,a,b,c,', ',') |
+----------------------------------+
| ['', '', 'a', 'b', 'c', '']      |
+----------------------------------+SELECT split_by_string(NULL,',');
+----------------------------+
| split_by_string(NULL, ',') |
+----------------------------+
| NULL                       |
+----------------------------+select split_by_string('a,b,c,abcde',',');
+-------------------------------------+
| split_by_string('a,b,c,abcde', ',') |
+-------------------------------------+
| ['a', 'b', 'c', 'abcde']            |
+-------------------------------------+select split_by_string('1,,2,3,,4,5,,abcde', ',,');
+---------------------------------------------+
| split_by_string('1,,2,3,,4,5,,abcde', ',,') |
+---------------------------------------------+
| ['1', '2,3', '4,5', 'abcde']                |
+---------------------------------------------+select split_by_string(',,,,',',,');
+-------------------------------+
| split_by_string(',,,,', ',,') |
+-------------------------------+
| ['', '', '']                  |
+-------------------------------+select split_by_string(',,a,,b,,c,,',',,');
+--------------------------------------+
| split_by_string(',,a,,b,,c,,', ',,') |
+--------------------------------------+
| ['', 'a', 'b', 'c', '']              |
+--------------------------------------+

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/63323.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/63323.shtml
英文地址,請注明出處:http://en.pswp.cn/web/63323.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Metaploit-永恒之藍漏洞利用

1&#xff1a;Metaploit介紹   本次測試主要是利用永恒之藍漏洞對windows7進行控制利用&#xff0c;掌握Metaploit工具的使用&#xff0c;知道永恒之藍的漏洞利用原理。永恒之藍是在Windows的SMB服務處理SMB v1請求時發生的漏洞&#xff0c;這個漏洞導致攻擊者在目標系統上可…

電容Q值、損耗角、應用

電容發熱的主要原因&#xff1a;紋波電壓 當電容兩端施加紋波電壓時&#xff0c;電容承受的是變化的電壓&#xff0c;由于電容內部存在寄生電阻&#xff08;ESR&#xff09;和寄生電感&#xff08;ESL&#xff09;.因此電容會有能量損耗&#xff0c;從而產生熱量&#xff0c;這…

css三角形源碼

效果圖 如下圖所示&#xff0c;讓一個 div 變成三角形&#xff0c;并且可隨意更改大小&#xff0c; 本文提供了可運行示例源碼&#xff0c;直接復制即可。 實現源碼 建議創建一個 demo.html 文件&#xff0c;一鍵復制代碼運行。 <style> .div{width: 0px;height: 0p…

pyparsing restOfLine

在 pyparsing 中&#xff0c;restOfLine 是一個解析器&#xff08;parser&#xff09;&#xff0c;用于匹配當前位置到行尾的所有內容&#xff0c;通常在解析文件或處理逐行數據時非常有用。 restOfLine 的特性 匹配內容&#xff1a;從當前位置一直匹配到換行符 \n 或字符串結…

【附源碼】Electron Windows桌面壁紙開發中的 CommonJS 和 ES Module 引入問題以及 Webpack 如何處理這種兼容

背景 在嘗試讓 ChatGPT 自動開發一個桌面壁紙更改的功能時&#xff0c;發現引入了一個 wallpaper 庫&#xff0c;這個庫的入口文件是 index.js&#xff0c;但是 package.json 文件下的 type:"module"&#xff0c;這樣造成了無論你使用 import from 還是 require&…

【計算機網絡篇】計算機網絡期末復習題庫詳解

&#x1f9f8;安清h&#xff1a;個人主頁 &#x1f3a5;個人專欄&#xff1a;【計算機網絡】【Mybatis篇】 &#x1f6a6;作者簡介&#xff1a;一個有趣愛睡覺的intp&#xff0c;期待和更多人分享自己所學知識的真誠大學生。 目錄 &#x1f3af;單選 &#x1f3af;填空 &am…

JS使用random隨機數實現簡單的四則算數驗證

1.效果圖 2.代碼實現 index.html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</ti…

GIN中間件

感覺中間件是gin中挺重要的內容&#xff0c;就拿出來單獨講講吧&#xff01; 什么是中間件&#xff1f; Gin框架允許開發者在處理請求的過程中&#xff0c;加入用戶自己的 HandlerFunc 函數。 它適合處理一些公共的業務邏輯&#xff0c;比如登錄認證、權限校驗、數據分頁、記…

SLM510A系列——24V,15到150mA單通道可調電流線性恒流LED驅動芯片

SLM510A 系列產品是單通道、高精度、可調電流線性恒流源的 LED 驅動芯片&#xff0c;在各種 LED 照明產品中非常簡單易用。其在寬電壓輸入范圍內&#xff0c;能保證極高的輸出電流精度&#xff0c;從而在大面積的光源照明中&#xff0c;都能讓 LED 照明亮度保持均勻一致。 由于…

回歸預測 | MATLAB實現SVM-Adaboost集成學習結合支持向量機多輸入單輸出回歸預測

回歸預測 | MATLAB實現SVM-Adaboost集成學習結合支持向量機多輸入單輸出回歸預測 目錄 回歸預測 | MATLAB實現SVM-Adaboost集成學習結合支持向量機多輸入單輸出回歸預測基本介紹程序設計基本介紹 SVM-Adaboost集成學習是一種將支持向量機(SVM)與AdaBoost算法相結合的集成學習…

【潛意識Java】深度解讀JavaWeb開發在Java學習中的重要性

目錄 為什么Java Web開發如此重要&#xff1f; 1. 現代開發的核心技能 2. 增強系統設計與架構思維 3. 實戰經驗積累 Java Web開發的關鍵技術棧 案例&#xff1a;構建一個簡單的Java Web應用 1. 創建數據庫 2. 創建Java類 3. 創建數據庫連接工具類 4. 創建DAO類 5. 創…

如何在 .NET Core 中輕松實現異步編程并提升性能

目錄 初識異步編程 與多線程關系 異步編程操作 初識異步編程 異步編程&#xff1a;是指在執行某些任務時程序可以在等待某個操作完成的過程中繼續執行其他任務&#xff0c;而不是阻塞當前線程&#xff0c;這在處理I/O密集型操作(如文件讀取、數據庫查詢、網絡請求等)時尤為重…

麒麟操作系統服務架構保姆級教程(二)ssh遠程連接

如果你想擁有你從未擁有過的東西&#xff0c;那么你必須去做你從未做過的事情 作為一名成熟運維架構師&#xff0c;我們需要管理的服務器會達到幾十臺&#xff0c;上百臺&#xff0c;上千臺&#xff0c;甚至是上萬臺服務器&#xff0c;而且咱們的服務器還不一定都在一個機房&am…

159.等差數列的劃分

class Solution {public int numberOfArithmeticSlices(int[] nums) {int lenums.length;if(le<3){return 0;}int arith0,res0,count0;//arith是差的大小,res是結果,count計算等差數量for(int i1;i<le;i){if(nums[i]-nums[i-1]arith){count;if(count>2){rescount-1;}}…

RabbitMQ消息隊列的筆記

Rabbit與Java相結合 引入依賴 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId> </dependency> 在配置文件中編寫關于rabbitmq的配置 rabbitmq:host: 192.168.190.132 /…

請求三方http工具

請求三方接口工具封裝 實現邏輯&#xff1a; 發起請求&#xff0c;輸入基本請求信息&#xff1a;請求地址&#xff0c;請求類型&#xff0c;請求參數&#xff0c;是否需要認證工具自動為需要添加認證的請求添加認證&#xff0c;如果發現token快要過期或返回的錯誤編碼為定義的…

HP服務器開啟性能模式

ENERGY PERF BIAS CFG 模式指的是通過特定配置(通常是 BIOS 或操作系統中的設置)來控制處理器的能源性能偏置(Energy Performance Bias, EPB)。EPB 是一種機制,允許用戶或系統管理員在性能和功耗之間進行權衡。不同的設置可以影響系統的響應速度、能效等。 ENERGY PERF B…

調用釘釘接口發送消息

調用釘釘接口發送消息 通過創建釘釘開放平臺創建H5小程序&#xff0c;通過該小程序可以實現向企業內的釘釘用戶發送消息&#xff08;消息是以工作通知的形式發送&#xff09; 1、目前僅支持發送文本消息&#xff0c;相同內容的文本只能成功發送一次&#xff0c;但是接口返回發…

純css 實現呼吸燈效果

開始效果 呼吸效果 實現代碼 <div class"container"><div class"breathing-light"></div> </div><style>html,body {height: 100%;background-color: white;}.container {padding: 100px;}.container .breathing-light {wi…

進程通信方式---共享映射區(無血緣關系用的)

5.共享映射區&#xff08;無血緣關系用的&#xff09; 文章目錄 5.共享映射區&#xff08;無血緣關系用的&#xff09;1.概述2.mmap&&munmap函數3.mmap注意事項4.mmap實現進程通信父子進程練習 無血緣關系 5.mmap匿名映射區 1.概述 原理&#xff1a;共享映射區是將文件…