MariaDB – SUM JSON Array

測試環境為 CentOS 8 X86_64 (虛擬機)

在資料庫一個欄位儲存了 JSON 的陣列 Array [ 0.89, 12.99, 5.23, 2.04 ] 有辦法作加總嗎? 從網路找到寫好的 JSON 陣列加總函數 Function – https://stackoverflow.com/questions/31731513/mysql-labs-json-native-type-how-sum-the-result-of-an-array-returned-by-jsn-extr

DROP FUNCTION IF EXISTS Sum_Array_Cells;
DELIMITER //
CREATE FUNCTION Sum_Array_Cells( input_array json )
RETURNS DOUBLE
 
BEGIN
    DECLARE array_length INT(11);
    DECLARE retval DOUBLE(19,2);
    DECLARE cell_value DOUBLE(19,2);
    DECLARE idx INT(11);
   
    SELECT json_length( input_array ) INTO array_length;

    SET retval = 0.0;

    SET idx = 0;

    WHILE idx < array_length DO
        SELECT json_extract( input_array, concat( '$[', idx, ']' ) )
            INTO cell_value;

        SET retval = retval + cell_value;
        SET idx = idx + 1;
    END WHILE;

    RETURN retval;
	
END//
DELIMITER ;

測試一下.

> SELECT Sum_Array_Cells( '[ 0.89, 12.99, 5.23, 2.04 ]' ) AS SUM_Result;
+------------+
| SUM_Result |
+------------+
|      21.15 |
+------------+
1 row in set (0.000 sec)
沒有解決問題,試試搜尋本站其他內容

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料