我想知道这个查询是否可以重构以提高效率。该查询针对的是一个应用程序,其中3个级别的管理层授权一名员工参加培训课程。目前我们需要3个级别的审批,但这可能会更改为4个或更多。SELECT badge as employee, (select supervisor_badge FROM hr_data level2WHERE badge = level1.supervisor_badge) as boss2
(select supervisor_badge FROM hr
), DAY(ts), 0, 0, 0, 0) AS day, AVG(CASE WHEN DATEPART(HOUR, ts) = 1 THEN val ELSE NULL END) AS hr1,
-- ...etc for other hours因此,hr0应该只反映满足DATEPART(HOUR, ts) = 0的最小ts的单个DATEPART(HOUR, ts) = 0(