use*_*700 3 sql select substring count sql-server-2008
我知道这必须是一个容易的选择,但是我没有运气来弄清楚它。我有一个表,其中包含客户分组代码字段,并且我试图获取2到6组的每个不同字符的计数。在我过去的foxpro经验中,一个简单的
select distinct substr(custcode,2,5), count (*) from a group by 1
可以,但是在SQL Server查询中似乎不起作用。错误消息表明它不喜欢在group by中使用数字引用,因此我将其更改为custcode,但每个计数仅返回1,因为我认为计数是在发生不同情况之后才出现,因此只有一个。如果我将计数更改为count(distinct substring(custcode,2,5))并删除第一个不同的子字符串,那么我只会得到存在多少个不同代码的计数。有人可以指出我在做什么错吗?谢谢。
该DISTINCT和GROUP BY是多余的,你只是想GROUP BY和你想GROUP BY你选择同样的事情:
select substr(custcode,2,5), count (*)
from a
group by substr(custcode,2,5)
Run Code Online (Sandbox Code Playgroud)
在SQL Server中,可以在ORDER BY子句中使用列别名/数字,但不能在中使用GROUP BY。
就是 ORDER BY 1将按第一个选定的列排序,但是许多人认为使用列索引是一种不好的做法,因为使用别名/列名会更清楚。
| 归档时间: |
|
| 查看次数: |
11331 次 |
| 最近记录: |