Parameters, Value
Deduplication operation can deduplicate a column of nodes, edges or numeric values, and return the deduplicated data column. The basis of the deduplication of nodes and edges is the UUID.
Syntax:
- Format: stddev(
<column>
) - Parameters: see table below
- Value: same as
<column>
Name | Category | Specification | Description |
---|---|---|---|
<column> |
NODE,EDGE,ATTR,ARRAY | / | The column to be aggregated |
The value of <column>
with different categories in every row:
Type | Value |
---|---|
NODE | Node's UUID in the row |
EDGE | Edge's UUID in the row |
ATTR | ATTR's value in the row |
ARRAY | The value of the 1st element in the array of the row |
The direct returned paths, nodes or edges of UQL query statement is already deduplicated and no need to use
distinct()
redundantly.
ATTR (Numeric value)
Example: find 10 @transfer
edges, deduplicate the year of transfer time and return results
find().edges({@transfer}) as e
limit 10
return distinct(year(e.time))
ATTR (String)
Example: find 10 nodes, deduplicate their schema and return results
find().nodes([1,2,3,4,5,6,7,8,9,10]) as n
return distinct(n.@)
ATTR (Time)
Example: find cards, deduplicate dates of opening cards and return results
find().nodes({@card}) as n
return distinct(n.open_date)
NODE
Example: find 3-step transfer paths outbound from Card CA001, deduplicate the 3rd transfer edges and return results
n({_id == "CA001"}).re({@transfer})[2].n({@card})
.re({@transfer} as e).n({@card})
return distinct(e)
ARRAY
Example: find 2-step transfer paths outbound from Card CA001, combine the nodes in the path into an array and deduplicate before return results
n({_id == "CA001"}).re({@transfer})[2].n({@card}) as p
return distinct(pnodes(p))