下午好,
我想知道是否有更简单的方法来执行此功能。我需要做的是创建一个用户可以总结的列,以便在多个计算中使用。我通常会在前端应用程序中使用Distinct Count(例如SSRS或PowerView)来显示我需要的内容,但由于这是专为自助服务而设计的,因此使用数据的人员将无法完全理解。
以下是我正在使用的代码:
SELECT *
, [ROW] = ROW_NUMBER() OVER (
ORDER BY T.REQUEST_ID
)
, [CT_DIS] = CAST(CASE
WHEN ROW_NUMBER() OVER (
PARTITION BY T.REQUEST_ID ORDER BY DT
) = 1
THEN 1
ELSE 0
END AS INT)
FROM testdata as t
我确实有一些测试数据可供使用;但是我无法正确地调整小提琴。 我需要检查的列是[CT_DIS]。
使用简单查询可以非常快速地工作,但是,真正需要进入的是一个非常大的查询,它有多个CTE通过链接服务器从Oracle中提取数据,并且有近7万行(增长为每天约300-600)。问题是性能。我想最终的解决方案是通过SSIS传输数据并在之后运行CT_DIS。
是否存在返回相同结果且响应速度更快的函数?谢谢你的帮助!
答案 0 :(得分:0)
此问题已得到解决。我能够使用SSIS作业来解决问题,以获取数据并加载到报表服务器级别表中。谢谢你的帮助!