在线求一统计sql语句,得到结果后速结帖

victory610 2020-02-11 09:52:42
1、问题描述:根据客单类别表统计出每个省份每个城市的低客单数和高客单数,如果某城市无低客单记录或高客单记录,其统计数为0

2、源数据:客单类别表
买家数据 省份 城市 客单类别
张三 湖北 武汉 低客单
李四 湖北 武汉 高客单
王五 湖北 武汉 高客单
赵六 湖南 岳阳 高客单
钱七 湖南 长沙 低客单
孙八 湖南 长沙 低客单

3、要求:通过一条sql语句得到下列结果
省份 城市 低客单数 高客单数
湖北 武汉 1 2
湖南 岳阳 0 1
湖南 长沙 2 0

非常感谢!!!


...全文
94 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
victory610 2020-02-11
  • 打赏
  • 举报
回复
太棒了,马上结帖!
吉普赛的歌 版主 2020-02-11
  • 打赏
  • 举报
回复
USE tempdb
GO
IF OBJECT_ID('dbo.[t]') IS NOT NULL 
	DROP TABLE dbo.[t]
GO
CREATE TABLE dbo.[t](
[买家数据] NVARCHAR(20)
,[省份] NVARCHAR(10)
,[城市] NVARCHAR(10)
,[客单类别] NVARCHAR(10)	
)
GO
SET NOCOUNT ON
INSERT INTO dbo.[t] VALUES(N'张三',N'湖北',N'武汉',N'低客单')
INSERT INTO dbo.[t] VALUES(N'李四',N'湖北',N'武汉',N'高客单')
INSERT INTO dbo.[t] VALUES(N'王五',N'湖北',N'武汉',N'高客单')
INSERT INTO dbo.[t] VALUES(N'赵六',N'湖南',N'岳阳',N'高客单')
INSERT INTO dbo.[t] VALUES(N'钱七',N'湖南',N'长沙',N'低客单')
INSERT INTO dbo.[t] VALUES(N'孙八',N'湖南',N'长沙',N'低客单')
------- 以上为测试表及测试数据 ---------


SELECT t.[省份]
	,t.[城市]
	,SUM(CASE WHEN 客单类别='低客单' THEN 1 ELSE 0 END) AS 低客单数
	,SUM(CASE WHEN 客单类别='高客单' THEN 1 ELSE 0 END) AS 低客单数
FROM t
GROUP BY t.[省份],t.[城市]
ORDER BY t.[省份],t.[城市]
/*
省份         城市         低客单数        低客单数
---------- ---------- ----------- -----------
湖北         武汉         1           2
湖南         长沙         2           0
湖南         岳阳         0           1
*/

34,590

社区成员

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

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