• 全部
  • 基础类
  • 应用实例
  • 新技术前沿

sql查询问题,在线等 急!!!!!!!!

huoyutu 2008-07-16 08:54:54
我现在有一张表 如
so_id so_name so_type
1 国家发改委 1
2 价格监测中心 2
3 广州电台 3
4 广州商业电台 3

我需要的结果是

so_id so_name so_type count
1 国家发改委 1 1
2 价格监测中心 2 1
3 广州电台 3 2
4 广州商业电台 3 2

请问一条SQL语句怎么实现
...全文
38 点赞 收藏 9
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
dsp_zerg 2008-07-16

create table test(so_id int,so_name varchar(20),so_type int)
insert test(so_id,so_name,so_type) values(1,'国家发改委',1)
insert test(so_id,so_name,so_type) values(2,'价格监测中心',2)
insert test(so_id,so_name,so_type) values(3,'广州电台',3)
insert test(so_id,so_name,so_type) values(4,'广州商业电台',3)

select a.so_id,a.so_name,a.so_type,b.count from test a
left join
(select so_type,count(so_type)as count from test group by so_type) b
on a.so_type=b.so_type
回复
-狙击手- 2008-07-16
。。
回复
huoyutu 2008-07-16
谢谢各位大虾
结贴了
网上牛人确实多
回复
liangCK 2008-07-16
--> 测试数据: #T
if object_id('tempdb.dbo.#T') is not null drop table #T
create table #T (so_id int,so_name nvarchar(12),so_type int)
insert into #T
select 1,'国家发改委',1 union all
select 2,'价格监测中心',2 union all
select 3,'广州电台',3 union all
select 4,'广州商业电台',3

select so_id,so_name,so_type,
(select count(*) from #T where so_type=t.so_type) so_count
from #T t

/*
so_id so_name so_type so_count
----------- ------------ ----------- -----------
1 国家发改委 1 1
2 价格监测中心 2 1
3 广州电台 3 2
4 广州商业电台 3 2

(4 行受影响)
*/
回复
wzy_love_sly 2008-07-16
so_id so_name so_type
1 国家发改委 1
2 价格监测中心 2
3 广州电台 3
4 广州商业电台 3

select soid,so_name,so_type,
[count]=(select count(1) from tb where so_type=t.so_type)
from tbname t
回复
huoyutu 2008-07-16
不好意思,忘记说明了

count 是根据so_type字段统计出来的
回复
liangCK 2008-07-16
没人想去猜.
回复
qjlsharp 2008-07-16
count字段是指的什么,怎么来的?
回复
-狙击手- 2008-07-16
count是相似的合计 ?
回复
相关推荐
发帖
MS-SQL Server
创建于2007-09-28

3.3w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
帖子事件
创建了帖子
2008-07-16 08:54
社区公告
暂无公告