以下是sql server中的CTE示例 . 我必须在KDB中进行类似的递归 . KDB是否支持递归查询或接近它的内容 . 目前我可以考虑创建函数并将每个递归的临时数据保存到某个东西中......
USE AdventureWorks2012;
GO
WITH DirectReports(ManagerID, EmployeeID, Title, EmployeeLevel) AS
(
SELECT ManagerID, EmployeeID, Title, 0 AS EmployeeLevel
FROM dbo.MyEmployees
WHERE ManagerID IS NULL
UNION ALL
SELECT e.ManagerID, e.EmployeeID, e.Title, EmployeeLevel + 1
FROM dbo.MyEmployees AS e
INNER JOIN DirectReports AS d
ON e.ManagerID = d.EmployeeID
)
SELECT ManagerID, EmployeeID, Title, EmployeeLevel
FROM DirectReports
ORDER BY ManagerID;
GO
1 回答
我不是100%确定你要做什么,但kdb中有两个有用的递归关键字
和
如果您只对递归的最终结果感兴趣,请使用:
恩 .
但如果您想要每个步骤的输出,请使用scan:
恩 .
这些都是Jeff Borror对凡人的q的例子 . 更多这里:http://code.kx.com/q/ref/control/#over