SQL Server:在Select中调整Rank语句时出现问题
我有一个动态存储过程,它的开头是一个临时表的声明,然后是一个insert语句 这里有人能告诉我我需要如何调整下面的行,以便它根据groupCount desc而不是按Count创建一个排名吗 当我只说groupCount而不是Count时,它返回: 列名“groupCount”无效 所涉行:SQL Server:在Select中调整Rank语句时出现问题,sql,sql-server,stored-procedures,ranking,rank,Sql,Sql Server,Stored Procedures,Ranking,Rank,我有一个动态存储过程,它的开头是一个临时表的声明,然后是一个insert语句 这里有人能告诉我我需要如何调整下面的行,以便它根据groupCount desc而不是按Count创建一个排名吗 当我只说groupCount而不是Count时,它返回: 列名“groupCount”无效 所涉行: RANK() OVER(ORDER BY COUNT(*) desc, <sel>) [Rank], 我的程序第一部分: SET @sql = N' DECLARE @temp AS T
RANK() OVER(ORDER BY COUNT(*) desc, <sel>) [Rank],
我的程序第一部分:
SET @sql = N' DECLARE @temp AS TABLE
(
ranking int,
item nvarchar(100),
totalCount int,
matchCount int,
groupCount int,
groupName nvarchar(100)
)
INSERT INTO @temp
(
ranking,
item,
totalCount,
matchCount,
groupCount,
groupName
)
SELECT RANK() OVER(ORDER BY COUNT(*) desc, <sel>) [Rank],
<sel>,
COUNT(*) AS totalCount,
SUM(CASE WHEN suggestedAction = recommendation THEN 1 ELSE 0 END) AS matchCount,
ROUND(100 * AVG(CASE WHEN suggestedAction = recommendation THEN 1.0 ELSE 0.0 END), 0) AS groupCount,
''currentMonth'' AS groupName
FROM LogEsc
WHERE dateEsc LIKE ''' + @date0 + '%''
AND EID LIKE ''PE%''
GROUP BY <sel>
ORDER BY groupCount desc, <sel>
-- ...
提前非常感谢你在这方面的帮助,蒂姆 您不能使用别名 使用
谢谢,行得通!如果我想按降序排列,我可以在上面的末尾添加desc吗?@user2571510是的,您应该能够在后面添加desc,以便按降序排列。
ORDER BY ROUND(100 * AVG(CASE WHEN suggestedAction = recommendation THEN 1.0 ELSE 0.0 END), 0)