CREATE table #tmp (ID INT, name VARCHAR(10), State VARCHAR(2))
INSERT INTO #tmp VALUES(1, 'kim', 'ny')
INSERT INTO #tmp VALUES(1, 'kim', 'nj')
INSERT INTO #tmp VALUES(1, 'kim', 'in')
INSERT INTO #tmp VALUES(2, 'tom', 'pa')
INSERT INTO #tmp VALUES(2, 'tom', 'ca')
INSERT INTO #tmp VALUES(3, 'matt', 'oh')
INSERT INTO #tmp VALUES(4, 'kyle', 'oh')
SELECT ID, name, COUNT(*) AS 'State_Count' FROM #tmp
GROUP BY ID, name
2条答案
按热度按时间66bbxpm51#
如果您只想获得不同的ID,那么您应该这样选择:
不能简单地使用distinct id并期望获得其他列。你能描述一下你想得到什么样的结果吗?
lokaqttq2#
您得到的结果与您的输入相同,因为distinct可用于选择列表中的所有列,而不仅仅是括号中的列。要获得ID和名称的不同列表,可以按这两列进行分组。