2016-07-29 157 views
0
尋找十大趨勢鳴叫

我對retweet_count 即鳴叫的基礎上擁有最高retweet_count將是1等上....在蜂巢

這裏是選表發現蜂巢中排名前10位的趨勢鳴叫細節

id      bigint     from deserializer 
created_at    string     from deserializer 
source     string     from deserializer 
favorited    boolean     from deserializer 
retweeted_status  struct<text:string,user:struct<screen_name:string,name:string>,retweet_count:int> from deserializer 
entities    struct<urls:array<struct<expanded_url:string>>,user_mentions:array<struct<screen_name:string,name:string>>,hashtags:array<struct<text:string>>> from deserializer 
text     string     from deserializer 
user     struct<screen_name:string,name:string,friends_count:int,followers_count:int,statuses_count:int,verified:boolean,utc_offset:int,time_zone:string,location:string> from deserializer 
in_reply_to_screen_name string     from deserializer 

我的查詢

select text 
from election 
where retweeted_status.retweet_count IN 
    (select retweeted_status.retweet_count as zz 
     from election 
     order by zz desc 
     limit 10); 

它返回我一樣鳴叫的10倍。 (TWEET-ABC, TWEET-ABC, TWEET-ABC, 。 。 。 TWEET-ABC)

因此,我所做的就是打破嵌套查詢,當我運行內部查詢

select retweeted_status.retweet_count as zz 
from election 
order by zz desc 
limit 10 

它返回10個不同的值(1210,1209,1208,1207,1206,.... 1201)

後來,當我跑我的外部查詢

select text 
from election 
where retweeted_status.retweet_count 
     IN (1210,1209,1208,1207,1206,....1201); 

的結果是相同的10個鳴叫 (TWEET-ABC, TWEET-ABC, TWEET-ABC, 。 。 。 TWEET-ABC)

我的查詢邏輯有什麼問題?

+0

林不熟悉的鳴叫和再鳴叫......但也許你有最銳推'{鳴叫-ABC,轉推1209}',然後你再轉推你'{tweet- abc,retweet 1210}'所以你最轉發的是一樣的......只是在增長 –

+0

你看過我的評論嗎?任何惡意?向我們顯示示例數據 –

回答

0

而不是使用計數你應該使用ID。這是因爲如果你有100條同樣數量的推文而不是限制10,你將得到100條記錄。

select text 
from election 
where id IN 
    (select id as zz 
     from election 
     order by retweeted_status.retweet_count desc 
     limit 10); 

但仍不確定爲什麼你得到錯誤的結果。

編輯(我的意見後):

如果我的意見是正確的,那麼你將有相同的ID十倍。在這種情況下,改變

 (select distinct id as zz 
     from election 
     order by retweeted_status.retweet_count desc 
     limit 10); 
+0

從選擇順序中選擇ID by retweeted_status.retweet_count desc limit 10;它給我一個錯誤「SemanticException [錯誤10004]:行1:38無效的表別名或列引用'retweeted_status':(可能的列名是:ID)」 – rUCHIt

+0

select * from retweedted_status.retweet_count desc limit 10;正在工作,但從選舉順序中選擇ID retweeted_status.retweet_count desc limit 10;不工作的錯誤是「無效的表別名或列引用'retweeted_status':(可能的列名是:id)」 – rUCHIt

+0

邏輯在那裏。我不知道如何處理複雜的對象或你的模型。請檢查您的查詢。 –