我使用HIVE进行查询,我喜欢查询所有列并基于不同的特定列。选择所有列并按一个特定列区分
例如我有表a;
StudentID
StudentName,
StudentBirsthDay,
StudentPassport;
StudentAge;
StudentRegisted;
....
....
我想查询所有的学生都具有独特的StudentID,从
选择*,不同的(StudentID);
我该如何编写查询?
非常感谢
我使用HIVE进行查询,我喜欢查询所有列并基于不同的特定列。选择所有列并按一个特定列区分
例如我有表a;
StudentID
StudentName,
StudentBirsthDay,
StudentPassport;
StudentAge;
StudentRegisted;
....
....
我想查询所有的学生都具有独特的StudentID,从
选择*,不同的(StudentID);
我该如何编写查询?
非常感谢
为什么会StudentId
被复制?这听起来像是你应用程序中的一个问题。
为了得到独一无二的StudentId
S:
select StudentId
from t
group by StudentId
having count(*) = 1;
你可以在不同的方式中的所有列,但将所有数据库中工作的一种方式是join
:
select t.*
from t join
(select StudentId
from t
group by StudentId
having count(*) = 1
) tt
on t.StudentId = tt.StudentId;
编辑:在Hive中,您将使用窗口函数:
注意:如果你想一个行所有StudentId
S,那么你可以使用row_number()
,而不是count(*)
。
我需要查询所有列,但在您的情况下,只能显示一个StudentID列 – user2953788
StudentID可能会被复制,因为所有数据都是从日志中收集的。 – user2953788
@ user2953788。 。 。第二个查询获取所有列。 –
查询写,如:
SELECT DISTINCT column1, column2, ...
FROM table_name;
例如:
SELECT DISTINCT StudentID FROM a;
请注明您所使用的RDBMS(MySQL或不亦乐乎?),并请更清楚地解释这个问题有点,有些示例数据。 –
如果有多于一行的同一个研究生,他们应该返回哪一个? –
嗨,我用过Hive,我喜欢将我的studentID分开并打印所有列。 – user2953788