从蜂巢中检索不同的ID?

时间:2015-02-24 17:45:48

标签: mysql sql hadoop hive

我的数据如下:

id name state

1 kim ny
1 danny nj
1 kim in 2 tom pa
2 sam ca
3哑哦 4 kyle哦

我需要获得不同的ID和所有剩余的数据。

输出:

id name state

1 kim ny
2 tom pa
3哑哦 4 kyle哦

我使用了“select distinct(id),name,state from population”,我得到的输出与输入相同。

2 个答案:

答案 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并期望获得其他列。你能描述一下你想要获得什么样的输出吗?