Bel*_*igh 1 sql-server t-sql sql-server-2008-r2
我需要一种方法来获得ek与每个相关联的唯一计数userid
我想要的输出是:
74123 3
Run Code Online (Sandbox Code Playgroud)
但我似乎无法准确获得 Distinct 计数的语法。我只能让它返回 TOTAL 计数,这不是我所追求的。
数据线
CREATE TABLE [dbo].[___________Purple](
[userid] [int] NULL,
[ek] [char](100) NULL
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
INSERT [dbo].[___________Purple] ([userid], [ek]) VALUES (71423, N'Black ')
GO
INSERT [dbo].[___________Purple] ([userid], [ek]) VALUES (71423, N'Black ')
GO
INSERT [dbo].[___________Purple] ([userid], [ek]) VALUES (71423, N'Black ')
GO
INSERT [dbo].[___________Purple] ([userid], [ek]) VALUES (71423, N'Black ')
GO
INSERT [dbo].[___________Purple] ([userid], [ek]) VALUES (71423, N'Black ')
GO
INSERT [dbo].[___________Purple] ([userid], [ek]) VALUES (71423, N'Black ')
GO
INSERT [dbo].[___________Purple] ([userid], [ek]) VALUES (71423, N'Green ')
GO
INSERT [dbo].[___________Purple] ([userid], [ek]) VALUES (71423, N'Green ')
GO
INSERT [dbo].[___________Purple] ([userid], [ek]) VALUES (71423, N'Green ')
GO
INSERT [dbo].[___________Purple] ([userid], [ek]) VALUES (71423, N'Green ')
GO
INSERT [dbo].[___________Purple] ([userid], [ek]) VALUES (71423, N'Green ')
GO
INSERT [dbo].[___________Purple] ([userid], [ek]) VALUES (71423, N'Green ')
GO
INSERT [dbo].[___________Purple] ([userid], [ek]) VALUES (71423, N'Green ')
GO
INSERT [dbo].[___________Purple] ([userid], [ek]) VALUES (71423, N'Green ')
GO
INSERT [dbo].[___________Purple] ([userid], [ek]) VALUES (71423, N'Green ')
GO
INSERT [dbo].[___________Purple] ([userid], [ek]) VALUES (71423, N'Green ')
GO
INSERT [dbo].[___________Purple] ([userid], [ek]) VALUES (71423, N'Green ')
GO
INSERT [dbo].[___________Purple] ([userid], [ek]) VALUES (71423, N'Green ')
GO
INSERT [dbo].[___________Purple] ([userid], [ek]) VALUES (71423, N'Green ')
GO
INSERT [dbo].[___________Purple] ([userid], [ek]) VALUES (71423, N'Green ')
GO
INSERT [dbo].[___________Purple] ([userid], [ek]) VALUES (71423, N'Green ')
GO
INSERT [dbo].[___________Purple] ([userid], [ek]) VALUES (71423, N'Green ')
GO
INSERT [dbo].[___________Purple] ([userid], [ek]) VALUES (71423, N'Green ')
GO
INSERT [dbo].[___________Purple] ([userid], [ek]) VALUES (71423, N'Green ')
GO
INSERT [dbo].[___________Purple] ([userid], [ek]) VALUES (71423, N'Green ')
GO
INSERT [dbo].[___________Purple] ([userid], [ek]) VALUES (71423, N'Green ')
GO
INSERT [dbo].[___________Purple] ([userid], [ek]) VALUES (71423, N'Green ')
GO
INSERT [dbo].[___________Purple] ([userid], [ek]) VALUES (71423, N'Green ')
GO
INSERT [dbo].[___________Purple] ([userid], [ek]) VALUES (71423, N'Green ')
GO
INSERT [dbo].[___________Purple] ([userid], [ek]) VALUES (71423, N'Green ')
GO
INSERT [dbo].[___________Purple] ([userid], [ek]) VALUES (71423, N'Green ')
GO
INSERT [dbo].[___________Purple] ([userid], [ek]) VALUES (71423, N'Green ')
GO
INSERT [dbo].[___________Purple] ([userid], [ek]) VALUES (71423, N'Green ')
GO
INSERT [dbo].[___________Purple] ([userid], [ek]) VALUES (71423, N'Green ')
GO
INSERT [dbo].[___________Purple] ([userid], [ek]) VALUES (71423, N'Green ')
GO
INSERT [dbo].[___________Purple] ([userid], [ek]) VALUES (71423, N'Pink ')
GO
INSERT [dbo].[___________Purple] ([userid], [ek]) VALUES (71423, N'Pink ')
GO
INSERT [dbo].[___________Purple] ([userid], [ek]) VALUES (71423, N'Pink ')
GO
INSERT [dbo].[___________Purple] ([userid], [ek]) VALUES (71423, N'Pink ')
GO
INSERT [dbo].[___________Purple] ([userid], [ek]) VALUES (71423, N'Pink ')
GO
INSERT [dbo].[___________Purple] ([userid], [ek]) VALUES (71423, N'Pink ')
GO
INSERT [dbo].[___________Purple] ([userid], [ek]) VALUES (71423, N'Pink ')
GO
INSERT [dbo].[___________Purple] ([userid], [ek]) VALUES (71423, N'Pink ')
Run Code Online (Sandbox Code Playgroud)
尝试这个:
SELECT userid, COUNT(DISTINCT ek) AS total_ek
FROM dbo.[___________Purple]
GROUP BY userid;
Run Code Online (Sandbox Code Playgroud)
结果:
对于像我这样对问题如何找到 3 个不同的 ek 感到困惑的人 - 确保向下滚动他史诗般的长 DDL 查询。