【十万火急】SQL 查询疑问

wilson2017 2020-08-26 06:10:31
比如有这样一张表

Name State City
------------------------------------------
张三 在读 上海
李四 辍学 北京
王五 辍学 北京
赵六 辍学 深圳
小红 辍学 北京
小明 辍学 北京


我想查出一个这样的结果
根据城市来分组

城市名称 在读生数量 辍学生数量

要怎么查比较好?
...全文
90 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
吉普赛的歌 2020-08-26
  • 打赏
  • 举报
回复
USE tempdb
GO
IF OBJECT_ID('dbo.[t]') IS NOT NULL 
	DROP TABLE dbo.[t]
GO
CREATE TABLE dbo.[t](
[Name] NVARCHAR(10)
,[State] NVARCHAR(10)
,[City] NVARCHAR(10)	
)
GO
SET NOCOUNT ON
INSERT INTO dbo.[t] VALUES(N'张三',N'在读',N'上海')
INSERT INTO dbo.[t] VALUES(N'李四',N'辍学',N'北京')
INSERT INTO dbo.[t] VALUES(N'王五',N'辍学',N'北京')
INSERT INTO dbo.[t] VALUES(N'赵六',N'辍学',N'深圳')
INSERT INTO dbo.[t] VALUES(N'小红',N'辍学',N'北京')
INSERT INTO dbo.[t] VALUES(N'小明',N'辍学',N'北京')
--以上为测试数据及测试表

select city AS 城市名称
,sum(CASE when [State]='在读' then 1 else 0 end) AS 在读生数量
,sum(CASE when [State]='辍学' then 1 else 0 end) AS 辍学生数量
from t
group by City
/*
城市名称   在读生数量  辍学生数量
---------- ----------- -----------
北京         0           4
上海         1           0
深圳         0           1
*/

27,580

社区成员

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

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