Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL Server:在聚合函数中使用用户定义的列_Sql_Sql Server_Tsql - Fatal编程技术网

SQL Server:在聚合函数中使用用户定义的列

SQL Server:在聚合函数中使用用户定义的列,sql,sql-server,tsql,Sql,Sql Server,Tsql,例如,我有 SELECT SUBSTRING([Path], 0, 5) AS [Directory] , COUNT([Directory]) FROM [MyDatabase] GROUP BY [Directory]; 但是我得到一个“无效列名”错误。这应该可以: SELECT SUBSTRING([Path], 0, 5) AS [Directory] , COUNT(1) FROM [MyDatabase] GROUP BY SUBSTRING([Path],

例如,我有

SELECT SUBSTRING([Path], 0, 5) AS [Directory]
      , COUNT([Directory])
FROM [MyDatabase]
GROUP BY [Directory];
但是我得到一个“无效列名”错误。

这应该可以:

SELECT SUBSTRING([Path], 0, 5) AS [Directory]
      , COUNT(1)
FROM [MyDatabase]
GROUP BY SUBSTRING([Path], 0, 5);
这应该起作用:

SELECT SUBSTRING([Path], 0, 5) AS [Directory]
      , COUNT(1)
FROM [MyDatabase]
GROUP BY SUBSTRING([Path], 0, 5);

问题是count()中使用的列名中的别名,我也不明白为什么只需要计数就需要两列。试一试

SELECT COUNT(SUBSTRING([Path], 0, 5))      
    FROM [MyDatabase];
如果两列都需要,请单击此处:

   SELECT SUBSTRING([Path], 0, 5) AS [Directory]
  , COUNT(SUBSTRING([Path], 0, 5) )
   FROM [MyDatabase]
   GROUP BY SUBSTRING([Path], 0, 5);

问题是count()中使用的列名中的别名,我也不明白为什么只需要计数就需要两列。试一试

SELECT COUNT(SUBSTRING([Path], 0, 5))      
    FROM [MyDatabase];
如果两列都需要,请单击此处:

   SELECT SUBSTRING([Path], 0, 5) AS [Directory]
  , COUNT(SUBSTRING([Path], 0, 5) )
   FROM [MyDatabase]
   GROUP BY SUBSTRING([Path], 0, 5);

我也需要子字符串。这是一个更大的查询的一部分,我明白了。我重写了它。粘贴第二个查询并重试。我还需要子字符串。这是一个更大的查询的一部分,我明白了。我重写了它。粘贴第二个查询并重试。谢谢!我相信这是你可以在谷歌上找到的东西,但我无法让它停止只返回有关用户定义聚合函数的内容。@user2476260-np,很高兴我能提供帮助。谢谢!我相信这是你可以在谷歌上找到的东西,但我无法让它停止只返回有关用户定义聚合函数的内容。@user2476260-np,很高兴我能提供帮助。