SQL:为另一列选择不同的值
我试图确定一列中有多少个唯一值可以按另一列中的值分组。SQL:为另一列选择不同的值
有我的表的列,但我感兴趣的的是:“部门”和“用户”
数据是如何,对于这两列,有重复的用户使用相同的部。
例如,
Department User
Insights Mike
Insights Mike
Insights Chris
Market Julie
Research Will
Research Sabrina
Research Bryan
我想是这样的:
Department DistinctUsers
Insights 2
Market 1
Research 3
我基本的SQL知识告诉我,这是代码的结构:
SELECT department, COUNT(DISTINCT user)
FROM Sheet1
GROUP BY department, user
我看到人们将实施(SELECT DISTINCT User from Sheet1)
在FROM
子句,但我hav e未能将其整合到代码中。
任何建议或提示,非常感谢!
谢谢!
正如在评论中提到,你只需要选自以删除用户。
SELECT
department,
COUNT(DISTINCT [user]) as CT
FROM Sheet1
GROUP BY department
ACCESS
SELECT
department,
count([user])
FROM
(SELECT DISTINCT department, [user] from Sheet1) as x
GROUP BY
department
您的代码将做的工作,但没有必要组由用户
这是不正确的,并且将显示“Insights”部门的3个用户,而不是预期的2 – yanman1234
,这是不正确的,因为他们需要不同的用户。 – scsimon
我修改了我的答案,然后:) – Cloud
BEGIN TRAN
CREATE TABLE #TMP (Department NVARCHAR(50),Name NVARCHAR(50))
INSERT INTO #TMP
SELECT 'Insights', 'Mike' UNION ALL
SELECT 'Insights','Mike' UNION ALL
SELECT 'Insights','Chris'UNION ALL
SELECT 'Market' ,'Julie' UNION ALL
SELECT 'Research', 'Will'UNION ALL
SELECT 'Research', 'Sabrina'UNION ALL
SELECT 'Research','Bryan'
SELECT * FROM #TMP
SELECT department, COUNT(DISTINCT NAME)
FROM #TMP
GROUP BY department
ROLLBACK TRAN
从你的解释,你的查询应该工作。但是样本数据和预期输出是必需的。您对样本数据的尝试不清楚。 – scsimon
我的错误似乎与“COUNT(不同用户)”一起出现。基本上我正在寻找将部门分组并计算每个部门中的唯一用户 - 希望能够清除它 – wra
那么,这正是查询所要做的。只需从'group by'中删除'user'即可。还有mysql sql server。选择一个标签。此外,这与ms-access有什么关系? – scsimon