Skip to content

Commit 7bc9eae

Browse files
authored
Add docs for random function (#641)
Adds docs for the `random()` function, per kuzudb/kuzu#5951.
1 parent aa02d28 commit 7bc9eae

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed

src/content/docs/cypher/expressions/numeric-functions.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,5 +39,40 @@ implemented so far are listed below.
3939
| `sign(x)` | returns the sign of x | `sign(-451)` | `-1` |
4040
| `sqrt(x)` | returns the square root of x | `sqrt(4.25)` | `2.061553` |
4141
| `tan(x)` | returns the tangent of x | `tan(75)` | `-0.420701` |
42+
| `random(x)` | returns a random number in the range | `random()` | `0.910543` |
43+
| `setseed(x)` | sets the seed for the `random()` function above | `setseed(0.2)` | null |
4244

4345
</div>
46+
47+
## Random number generation
48+
49+
The `random()` function returns a floating point number `x` in the range `0.0 <= x <= 1.0`.
50+
The following example uses the `random()` function to randomize the order of the results
51+
returned by a query:
52+
53+
```cypher
54+
// Randomize the order in which results are returned
55+
MATCH (p1:Person)-[:KNOWS]->(p2:Person)
56+
RETURN p1.id, p2.id, random() AS r
57+
ORDER BY r LIMIT 3
58+
```
59+
60+
If you want to fix the random seed for the random number generator, you can do so by running the
61+
`setseed(y)` query beforehand.
62+
63+
```cypher
64+
// Query 1: Set the seed
65+
RETURN setseed(0.2);
66+
67+
// Query 2: Run the random number generator that uses the specified seed
68+
MATCH (p1:Person)-[:KNOWS]->(p2:Person)
69+
RETURN p1.id, p2.id, random() AS r
70+
ORDER BY r LIMIT 3
71+
```
72+
73+
Setting the seed will ensure that the results are always returned in the same order.
74+
75+
:::caution[Note]
76+
The `setseed(y)` function applies globally, meaning that other functions that depend
77+
on random number generation, like `gen_rand_uuid()`, are also affected by setting the seed value.
78+
:::

0 commit comments

Comments
 (0)