问一条统计条数sql语句

notata 2005-03-21 01:39:55
类似有表如下:

NAME NO tb
----------------------------------
A 001 8-1
B 002 8-1
A 001 8-2
A 003 8-3
B 004 8-3


有一个统计表需要显示形式如下:

NAME 总数
-------------------------------------
A 3
B 2

或者

NO 总数
-------------------------------------
001 2
002 1
003 1
004 1

即:NAME 、NO可作为查询的条件查出符合条件的纪录总数。
请问这样的语句该怎么写?

...全文
100 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
andywang110001 2005-03-21
  • 打赏
  • 举报
回复
select Name,count(name) count from test group by name //test是表名
liushuyan12 2005-03-21
  • 打赏
  • 举报
回复
select name,count(*) as 总数,tb from 表 group by name
总是提示 tb 在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在 GROUP BY 子句中???
写成
select name,count(*) as 总数,tb from 表 group by name ,tb
就不出错了
xluzhong 2005-03-21
  • 打赏
  • 举报
回复
create proc p
@coln nvarchar(50)
as
exec('select '+@coln+',count(1) as 总数 from tablename group by '+@coln)
go
chenjie_0706 2005-03-21
  • 打赏
  • 举报
回复
select name,count(name) as 总数
from tablename
group by name
notata 2005-03-21
  • 打赏
  • 举报
回复
为什么写成下面的语句会出错?

select name,count(*) as 总数,tb from 表 group by name
总是提示 tb 在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在 GROUP BY 子句中???
该怎么样写才能把tb也显示出来呢?
notata 2005-03-21
  • 打赏
  • 举报
回复
如果十多个表联合查询该怎么写

select name,count(*)as 总数,table2.id from table1 left join tabel2 where ... order by name desc group by name ????

还是应该怎么写?
jinjazz 2005-03-21
  • 打赏
  • 举报
回复
--建立测试环境
Create Table 表(NAME varchar(10),NO integer,tb varchar(10))
--插入数据
insert into 表
select 'A','001','8-1' union
select 'B','002','8-1' union
select 'A','001','8-2' union
select 'A','003','8-3' union
select 'B','004','8-3'
select * from 表
--测试语句
select name,count(*)as 总数 from 表 group by name
select NO,count(*)as 总数 from 表 group by NO
--删除测试环境
Drop Table 表

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧