ITPub博客

首页 > 数据库 > 国内数据库 > 【巨杉数据库Sequoiadb】【咨询】【数据操作】【聚集查询】

【巨杉数据库Sequoiadb】【咨询】【数据操作】【聚集查询】

原创 国内数据库 作者:CherylRAnthony 时间:2019-06-28 10:08:19 0 删除 编辑

【 问题 描述】
在聚集 查询时 ,能否将字符 类 型字段按照 实际 内容 进 行分 组 去重呢?
示例:
1.
插入数据包含字符串
db.cs.cl.insert( { a : {“20190101000000” }} )
db.cs.cl.insert( { a : {“20190101111111” }} )
db.cs.cl.insert( { a : {“20190103000000” }} )
2.
执行 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.
如果字符串内容非 时间 戳格式, 则 无法 转 成日期内容 进 行分 组 去重

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69935160/viewspace-2649018/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-06-25

  • 博文量
    71
  • 访问量
    55600