2016-03-01 23 views
0

提出了一個問題:哪些學校最常出席?SQL:發生最大次數內部加入聲明

我想出了下面的語句...

select unitid, count(unitid) as 'Times_Occurred' 
from people 
group by unitid 
order by count(*) desc 
limit 50; 

我做了限制,因爲50多個單元ID的有3。我有兩張桌子,一張人桌和一張張桌子。他們通過unitid連接。我想弄清楚如何進行內部連接,不僅獲得前50名的最高單位,並且他們多頻繁地出現,而且還有與這些標識符一起出現的大學。

任何和所有的幫助非常感謝!

+0

將上述內容視爲內聯視圖,然後加入到張貼表中。否則您的計數可能會虛增 – xQbert

+1

您的查詢出了什麼問題。包括數據庫shema,樣本數據和期望輸出。 \t請閱讀[**如何提問**](http://stackoverflow.com/help/how-to-ask) \t \t這裏是[** START **]( http://spaghettidba.com/2015/04/24/how-to-post-at-sql-question-on-a-public-forum/)瞭解如何提高您的問題質量並獲得更好的答案。 –

回答

1

也許你的數量正在膨脹,你不知道如何處理...這是一種使用內聯視圖的方法。這起作用的原因是因爲計數在加入之前被計算和保留。因此1-M基數不會對計數產生負面影響。

Select * 
from (
    select unitid, count(unitid) as 'Times_Occurred' 
    from people 
    group by unitid 
    order by count(*) desc 
    limit 50) A 
INNER JOIN Post B 
    on A.UnitID = B.UnitID 
+0

我現在明白了,謝謝你,你是一個很大的幫助! – Bob