修改密码

请输入密码
请输入密码 请输入8-64长度密码 和 email 地址不相同 至少包括数字、大写字母、小写字母、半角符号中的 3 个
请输入密码
提交

修改昵称

当前昵称:
提交

申请证书

证书详情

Please complete this required field.

  • Ultipa Graph V4

Standalone

Please complete this required field.

Please complete this required field.

服务器的MAC地址

Please complete this required field.

Please complete this required field.

取消
申请
ID
产品
状态
核数
申请天数
审批时间
过期时间
MAC地址
申请理由
审核信息
关闭
基础信息
  • 用户昵称:
  • 手机号:
  • 公司名称:
  • 公司邮箱:
  • 地区:
  • 语言:
修改密码
申请证书

当前未申请证书.

申请证书
Certificate Issued at Valid until Serial No. File
Serial No. Valid until File

Not having one? Apply now! >>>

ProductName CreateTime ID Price File
ProductName CreateTime ID Price File

No Invoice

搜索
    中文

      GROUP BY

      GROUP BY 可以将别名中的数据行分成多个组,各组保留一行数据,其余的行舍弃;常与聚合、排序等操作配合使用。

      语法:GROUP BY <expression> as <alias>, <expression> as <alias>, ...
      参数:

      • <expression>:分组依据,多个依据必须同源,从左到右进行逐级分组
      • <alias>:分组依据的别名,可省略

      例如,对一步路径 path 进行多重分组,先按照起点 n1 的形状分组,再在组内按照终点 n1 的颜色分组;统计各组的路径数量:

      n(as n1).re().n(as n2) as path
      group by n1.shape, n2.color
      return path, count(path)
      

      示例图集:(以下示例将在本图基础上运行)

      在空图集中依次运行以下各行代码以创建该图数据:

      create().node_schema("country").node_schema("movie").node_schema("director").edge_schema("filmedIn").edge_schema("direct")
      create().node_property(@*, "name")
      insert().into(@country).nodes([{_id:"C001", _uuid:1, name:"France"}, {_id:"C002", _uuid:2, name:"USA"}])
      insert().into(@movie).nodes([{_id:"M001", _uuid:3, name:"Léon"}, {_id:"M002", _uuid:4, name:"The Terminator"}, {_id:"M003", _uuid:5, name:"Avatar"}])
      insert().into(@director).nodes([{_id:"D001", _uuid:6, name:"Luc Besson"}, {_id:"D002", _uuid:7, name:"James Cameron"}])
      insert().into(@filmedIn).edges([{_uuid:1, _from_uuid:3, _to_uuid:1}, {_uuid:2, _from_uuid:4, _to_uuid:1}, {_uuid:3, _from_uuid:3, _to_uuid:2}, {_uuid:4, _from_uuid:4, _to_uuid:2}, {_uuid:5, _from_uuid:5, _to_uuid:2}])
      insert().into(@direct).edges([{_uuid:6, _from_uuid:6, _to_uuid:3}, {_uuid:7, _from_uuid:7, _to_uuid:4}, {_uuid:8, _from_uuid:7, _to_uuid:5}])
      

      分组、组内聚合

      示例:查找 2 步路径 国家-电影-导演,按导演分组,统计每组的路径条数

      n({@country}).e().n({@movie}).e().n({@director} as n)
      group by n
      return table(n.name, count(n))
      

      |     n.name    | count(n) |
      |---------------|----------|
      | Luc Besson    | 2        |
      | James Cameron | 3        |
      

      分析:聚合运算如果没有紧跟着 GROUP BY 子句,则会执行分组后的聚合,而非在组内进行聚合。

      多重分组

      示例:查找 2 步路径 国家-电影-导演,按国家-导演分组,统计每组的路径条数

      n({@country} as a).e().n({@movie}).e().n({@director} as b)
      group by a, b
      return table(a.name, b.name, count(a))
      

      | a.name |     b.name    | count(a) |
      |--------|---------------|----------|
      | France | Luc Besson    | 1        |
      | France | James Cameron | 1        |
      | USA    | Luc Besson    | 1        |
      | USA    | James Cameron | 2        |
      
      请完成以下信息后可下载此书
      *
      公司名称不能为空
      *
      公司邮箱必须填写
      *
      你的名字必须填写
      *
      你的电话必须填写
      *
      你的电话必须填写