0

我需要以下查询的替代查询。


Select a.name,max(a.cnt) from (Select name,count(name) as cnt from Candidate group by name) a group by a.name order by 2 desc limit 1;


如果存在候选者,则删除表;

创建存储为文本文件 LOCATION '/user/cloudera/test/Exercise/candidate' 的外部表候选(名称字符串)

将路径中的数据加载到“/user/cloudera/test/candidate”覆盖到候选表中;

样本数据:

拉贾

拉贾

拉贾

拉贾

拉贾

阿尼尔

阿尼尔

阿尼尔

阿尼尔

阿尼尔

阿尼尔

阿尼尔

吉里

吉里

吉里

马河

马河

我需要名称重复更多时间的结果。按照上面的例子

阿尼尔又重复了一遍。

为了达到这个结果,我写了下面的查询。但是我对这个查询性能不满意,有没有人可以替代这个查询?

Select a.name,max(a.cnt) from (Select name,count(name) as cnt from Candidate group by name) a group by a.name order by 2 desc limit 1;

谢谢文卡德桑

4

1 回答 1

0
Select name, COUNT(*) AS cnt
FROM candidate 
GROUP by name
ORDER BY COUNT(*) DESC
LIMIT 1

在一个查询中执行它并且应该运行得更快。

于 2015-12-01T15:38:40.020 回答