请问这个group by 语句要怎么写

upshania 2009-04-29 12:43:23
有个表如下
id projectid username
1 项目1 张三
2 项目1 张四
3 项目2 张三
4 项目3 张三
5 项目3 张四
6 项目4 张三
7 项目5 张四


我想得到最后结果

id username 参与项目
1 张三 4个项目
2 张四 4个项目


请问这个SQL该怎么写 group by 好像不行啊,,请教
...全文
81 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lifanfly 2009-04-29
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 sdhdy 的回复:]
SQL code
select id=identity(int,1,1), username,参与项目=count(projectid) into #temp from tb group by username
select * from #temp
drop table #temp
[/Quote]
还是第一次见到这种方法,厉害厉害
csdyyr 2009-04-29
  • 打赏
  • 举报
回复
DECLARE @TB TABLE([id] INT, [projectid] NVARCHAR(3), [username] NVARCHAR(2))
INSERT @TB
SELECT 1, N'项目1', N'张三' UNION ALL
SELECT 2, N'项目1', N'张四' UNION ALL
SELECT 3, N'项目2', N'张三' UNION ALL
SELECT 4, N'项目3', N'张三' UNION ALL
SELECT 5, N'项目3', N'张四' UNION ALL
SELECT 6, N'项目4', N'张三' UNION ALL
SELECT 7, N'项目5', N'张四'

SELECT id=row_number() over (order by username),
username,
count(*) as 参与项目
FROM @TB
group by username
/*
id username 参与项目
-------------------- -------- -----------
1 张三 4
2 张四 3
*/
liangCK 2009-04-29
  • 打赏
  • 举报
回复
SELECT MIN(id) AS id,
username,
RTRIM(COUNT(*)) + '个项目' AS 参与项目
FROM tb
GROUP BY username
sdhdy 2009-04-29
  • 打赏
  • 举报
回复

select id=identity(int,1,1), username,参与项目=count(projectid) into #temp from tb group by username
select * from #temp
drop table #temp
-狙击手- 2009-04-29
  • 打赏
  • 举报
回复
select username,count(1)
from ta
group by username
jwdream2008 2009-04-29
  • 打赏
  • 举报
回复
学习了!

34,575

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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