如何从以下查询中选择不同的[案例所有者],[案例编号]?
result_array()
上面的查询返回:
我希望输出结果如下所示,没有[Case Number]的重复值:
答案 0 :(得分:0)
我认为您可能需要GROUP BY,如下所示:
WITH RandomCaseNum AS
(
SELECT [Date/Time Closed]
,[Case Owner]
,[Case Number]
,ROW_NUMBER() Over (Partition By [Case Owner] Order By NewId()) Random
FROM [RE_INT_IE_SalesForceGoogle].[dbo].[tb_CCAScrubbedAll]
LEFT OUTER JOIN [RE_INT_IE_Darwin].[dbo].[datPREP_02_EmployeeList] E
ON [Case Owner] = E.GoogleSalesforceName
WHERE YEAR([Date/Time Closed]) = YEAR(GETDATE())
AND DATEPART(WW, [Date/Time Closed]) = DATEPART(WW, GETDATE()) -1
)
SELECT [Case Owner]
,[Case Number]
,SUM (Random)
FROM RandomCaseNum
GROUP BY [Case Owner]
,[Case Number]
HAVING Random SUM (Random) <= 5
答案 1 :(得分:0)
你想要在CTE内部进行GROUP BY,而不是在它之外。在外面,您需要为随机数添加一些无意义的聚合函数。
CTE中的[日期/时间已结束]可能是行复制的来源。这是否是罪魁祸首,因为你没有在你的外部查询中使用它,你在结果集中不需要它。
WITH RandomCaseNum AS
(
SELECT [Case Owner]
,[Case Number]
,ROW_NUMBER() Over (Partition By [Case Owner] Order By NewId()) Random
FROM [SF].[dbo].[All]
WHERE YEAR([Date/Time Closed]) = YEAR(GETDATE())
AND DATEPART(WW, [Date/Time Closed]) = DATEPART(WW, GETDATE()) -1
GROUP BY [Case Owner]
,[Case Number]
)
SELECT [Case Owner]
,[Case Number]
,Random
FROM RandomCaseNum
WHERE Random <= 5