我正在寻找什么:
我需要从SQL Server获取所有ID的列表,但是每个ID都有多行。 每个ID的某些行都是系统更新的,因此在我的查询中无需特别注意。
换句话说:
我需要获取整个列表,为每个ID计算系统以外的所有行。
数据库的外观如下:
ID | linenumber| data, data, ... data|Requesto| data, data
1 | 1 |.....................|JUAN |...........
1 | 2 |.....................|SYSTEM |...........
2 | 1 |.....................|Matias |...........
2 | 2 |.....................|Matias |...........
2 | 3 |.....................|Matias |...........
我需要得到:
ID | CantRoWs |.....................|WHO is |...........
1 | 1 |.....................|JUAN |...........
2 | 3 |.....................|Matias |...........
我当时正在考虑使用如下所示的临时查询,但这是行不通的。
with temp as
(
SELECT OVER (PARTITION BY szCID ORDER BY gdReceived desc) as RowNum,*
FROM TABLE1;
)
SELECT *, (Select count(szCID) from TABLE1 where szAccount <> 'system') AS Hits From temp
WHERE RowNum = 1
有什么想法吗?
答案 0 :(得分:1)
我建议您从在公用表表达式中使用row_number()和count()开始:
{{1}}