递归跟踪客户状态(Presto SQL)

递归跟踪客户状态(Presto SQL),第1张

递归跟踪客户状态(Presto SQL)

这是使用联合的一种选择。该查询背后的症结在于,我们生成了一个

state_id
将customer表加入其中的逻辑列。该表包含
state_id
给定状态的当前值和替换值。

SELECt    c.customer_id,    t.state_created,    t.state_nameFROM Customer cINNER JOIN(    SELECt state_id, state_name, state_created    FROM Historical_state    UNIOn ALL    SELECt h1.state_id, h2.state_name, h2.state_created    FROM Historical_state h1    INNER JOIN Historical_state h2        ON h1.replace_state_id = h2.state_id) t    ON c.current_state_id = t.state_id;

这是MySQL中的一个演示,因为Rextester不支持SQLite,但至少表明查询逻辑是正确的。

演示版

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5107446.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-17
下一篇 2022-11-17

发表评论

登录后才能评论

评论列表(0条)

保存