【巨杉數據庫Sequoiadb】【諮詢】【數據操做】【彙集查詢】在執行彙集查詢時,字符類型的字段可否按照實際內容進行分組去重

【問題描述】
在彙集查詢時,可否將字符類型字段按照實際內容進行分組去重呢?
示例:mysql

  1. 插入數據包含字符串

db.cs.cl.insert( { a : {「20190101000000」 }} )
db.cs.cl.insert( { a : {「20190101111111」 }} )
db.cs.cl.insert( { a : {「20190103000000」 }} )sql

  1. 執行 aggregate 查詢,可否實現將字符串格式按照 20190301 這一段內容 進行分組去重?

【解決辦法】函數

  1. SequoiaDB aggregate 函數目前不支持將字符串的某段內容進行分組,只支持對整個字符串進行分組去重
  2. 從客戶的問題來看,客戶是想將字符串格式的時間戳轉成時間內容來進行分組,最便捷的方法是經過 SQL 語法去實現
  3. 針對客戶的問題,能夠利用 SequoiaSQL-MySQL/SequoiaSQL-PostgreSQL + SequoiaDB 工具,使用標準 SQL 語句實現將字符串格式的時間戳轉成日期內容進行分組去重,示例以下:
    1) 使用 SQL 語句建表:
    mysql> create table t1 ( a char(16) ) ;
    2) 插入數據
    mysql> insert into t1 values ( "20190101000000" );
    mysql> insert into t1 values ( "20190101111111" );
    mysql> insert into t1 values ( "20190103000000" );
    3) 使用 SQL 語句將字符串格式轉成日期內容進行分組去重
    mysql> select count( a), date_format( a. '%Y-%m-%d' ) a from t1 group by date_format( a, '%Y-%m-%d' );
    4) 步驟3查詢結果以下:
    count ( a ) a
    2 2019-01-01
    1 2019-01-03
  4. 若是字符串內容非時間戳格式,則沒法轉成日期內容進行分組去重
相關文章
相關標籤/搜索