所以这是我最初的查询:
DECLARE @total AS FLOAT;
SET @total =(SELECT COUNT(*) FROM Crimes)
SELECT
Areas.Area,
Areas.AreaName,
COUNT(*) AS Total,
Round(CONVERT(float,(COUNT(*) / @total) * 100),3)
FROM Areas
INNER JOIN Crimes
ON(Areas.Area = Crimes.Area)
GROUP BY
Areas.AreaName,
Areas.Area
我做的唯一改变是将聚合函数重命名为“Percent”,并且它说两个列Area和AreaName存在问题,它们无法绑定,我不知道为什么 .
新变化:
DECLARE @total AS FLOAT;
SET @total =(SELECT COUNT(*) FROM Crimes)
SELECT
Areas.Area,
Areas.AreaName,
COUNT(*) AS Total,
Round(CONVERT(float,(COUNT(*) / @total) * 100),3) AS Percent
FROM Areas
INNER JOIN Crimes
ON(Areas.Area = Crimes.Area)
GROUP BY
Areas.AreaName,
Areas.Area
1 回答
PERCENT
是SQL Server中的关键字 . 尝试使用其他一些别名,例如Pct
:请注意,我已经在您的查询中引入了表别名,这使得代码更简洁,更易于阅读 .
您也可以在方括号中使用
[Percent]
. 但是,这会打开这样一种风险:有人在查询你的查询时也必须逃避这个别名 . 所以,我更喜欢完全避免使用关键字列和表名 .