螺旋数据集语法规则

楼主
我是社区第128位番薯,欢迎点我头像关注我哦~
在查询中,填写的是一个json语句,主要包含下面的字段
  • $select字段
  • $cal字段
  • $group字段
  • $order字段
  • $filter字段
  • $limit字段
  • $formula字段
  • 组合字段
下面就详细的描述每个字段的含义以及其用法。
$select字段key为固定的"$select"。
value为一个数组,表示要筛选的列,数组元素可以是单一列名,也可以是列名和别名的描述信息。
  1. // {"$select":[{"$name":"姓名", "$as":"名字"}, "salary"]} //暂时还不能重命名
  2. {"$select":"*"}
复制代码
相当于SQL语句:
// select 姓名 as 名字,salary from tableA
select * from tableA
预览结果


$cal字段
key为固定"$cal"
value为JSON数组,数组中对象为计算指标与字段名称的键值对和"$as"和别名键值对。
[td][tr][/tr]
$count汇总
$distinctCount不同值的汇总
$max最大
$min最小
$sum求和
[tr][td]
[/td][/tr]
[tr][td]
  1. {"$cal":[{"$count":"年龄", "$as":"ca"},{"$count":"工龄"}]}
复制代码
相当于SQL语句:[/td][/tr]
[tr][td]
  1. select count(年龄) as ca from tableName
复制代码
预览结果[/td][/tr]
[tr][td] [/td][/tr]
[tr][td]$group字段[/td][/tr]
[tr][td]key为固定"$group"[/td][/tr]
[tr][td]value为JSON数组,为全部分组字段名称数组。[/td][/tr]
[tr][td]查询语句:[/td][/tr]
[tr][td]
  1. {"$group":["工龄","年龄"]}
复制代码
相当于SQL语句:[/td][/tr]
[tr][td]
  1. select 工龄,年龄 from tableName GROUP BY "工龄","年龄"
复制代码
预览结果[/td][/tr]
[tr][td] [/td][/tr]
[tr][td]$order字段[/td][/tr]
[tr][td]key为固定"$order"value为JSON数组,为全部分组字段名称与排序方式的对象数组其中1表示正序,-1表示倒序。[/td][/tr]
[tr][td]查询语句:[/td][/tr]
[tr][td]
  1. {
  2.   "$order": [
  3.     {
  4.       "年龄": 1
  5.     },
  6.     {
  7.       "工龄": -1
  8.     }
  9.   ]
  10. }
复制代码
相当于SQl语句:[/td][/tr]
[tr][td]
  1. select * from tableName Order BY 年龄 ASC,工龄 DESC
复制代码
预览结果[/td][/tr]
[tr][td] [/td][/tr]
[tr][td]$filter字段[/td][/tr]
[tr][td]key为固定"$filter"value为JSON对象,为过滤条件对象过滤条件对象比较复杂,能够使用$and、$or进行逻辑关联下一层的过滤条件对象。最底层过滤条件对象key为下面表格的12中逻辑,value为字段名与真实值。或者后四个判断为null的逻辑,value为字段名。
$eq等于
$ne不等于
$lt小于
$le小于等于
$gt大于
$ge大于等于
$notContains不包含
$contains包含
$endWith以。。。结尾
$beginWith
以。。。开头
$notEndWith
不以。。。结尾
$notBeginWith
不以。。。开头
$isNotNull
不为空
$isNull
为空
$isStringNotNull
字符串不为空
$isStringNull
字符串为空
{
    "$filter":{
        "$and":[
            {
                "$ge":{
                    "年龄":30
                }
            },
            {
                "$lt":{
                    "工龄":10
                }
            },
            {
            "$isNotNull":"id"
            }
            ]
    }
}

相当于SQL语句:
select * from tableName where 年龄>=30 and 工龄<10 and id is not NULL
预览结果


$limit字段key为固定的"$limit"。
value为一个json对象。
”$offset"的value值为指定从那一行开始
"$num"的value值为指定的返回行数
{
    "$limit":{
        "$offset":100,
        "$num":200
    }
}

相当于SQl语句:

select * from tableName limit 200 offset 100
预览结果

$formula字段$formula为一个JSON数组,每一个对象为一个计算指标。key为计算指标新生成的字段名,value为计算公式。计算公式见详情 [注:字段名区分大小写且前面要加$进行标识,使用到的字段名必须包含在select中]。
{
  "$select":"*",
  "$formula":[
     {"$name":"sum","$content":"sum($年龄,$工龄)"},
      {"$name":"max","$content":"max($年龄,$工龄)"},
  ]
}

相当于SQL语句:
select *,sum(年龄,工龄)as sum,max(年龄,工龄)as max from tableName
预览结果


组合字段在json中可以同时使用多个字段进行
{
   "$select":["年龄","工龄"],
  "$filter":{
    "$and":[
        {"$gt":{"年龄":20}},{"$lt":{"年龄":40}}
        ]
  },
  "$order":[
    {"年龄":-1    },
    {"工龄":1}
    ],
    "$formula":[
     {"$name":"sum","$content":"sum($年龄,$工龄)"}
  ]
}

相当于SQL语句:
select 年龄,工龄,sum(年龄,工龄)as sum from tableName where 年龄>20 and 年龄<40 Order BY 年龄 DESC,工龄

预览结果


编辑于 2017-10-20 11:51  
编辑于 2017-10-20 14:50  

编辑于 2017-10-20 15:02  
编辑于 2017-10-21 09:21  
分享扩散:

沙发
发表于 2017-10-20 13:55:54
板凳
发表于 2017-10-20 14:39:01
地板
发表于 2017-10-21 07:07:45
5楼
发表于 2017-10-21 07:51:48
来自手机
漩涡大神,limit里是不是写错了,offset是从哪一行开始,不是从哪一列开始?
6楼
发表于 2017-10-21 09:21:09
真实姓名 发表于 2017-10-21 07:51
漩涡大神,limit里是不是写错了,offset是从哪一行开始,不是从哪一列开始?

多谢指正,是行
7楼
发表于 2018-12-5 09:07:14
大神 螺旋数据集怎么用分页语句
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

返回顶部 返回列表