我的数据如下:
1 kim ny
1 danny nj
1 kim in
2 tom pa
2 sam ca
3哑哦
4 kyle哦
我需要获得不同的ID和所有剩余的数据。
输出:
1 kim ny
2 tom pa
3哑哦
4 kyle哦
我使用了“select distinct(id),name,state from population”,我得到的输出与输入相同。
答案 0 :(得分:0)
您的输入与输入相同,因为Distinct适用于选择列表中的所有列,而不仅仅是括号中的列。要获得不同的ID和名称列表,您可以按这两列进行分组。
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
答案 1 :(得分:0)
如果您只想获得不同的ID,那么您应该只选择它:
select distinct(id) from population;
您不能简单地使用不同的ID并期望获得其他列。你能描述一下你想要获得什么样的输出吗?