blob: 665c99868c0cf95b7183b95d7bbdffff07c8fff0 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
PRAGMA YqlSelect = 'force';
WITH
edges AS (
SELECT src, dst
FROM (VALUES (1, 2), (1, 3), (2, 3), (3, 4)) AS x(src, dst)
),
RECURSIVE paths AS (
SELECT 1 AS node, 0 AS depth
UNION ALL
SELECT e.dst AS node, p.depth + 1 AS depth
FROM edges AS e
INNER JOIN paths AS p ON e.src = p.node
)
SELECT node, Min(depth)
FROM paths
GROUP BY node
ORDER BY Min(depth);
|