2013-11-20 80 views
0

我一直在尋找字面上的小時(下午1點至11點)的SQL查詢的解決方案,我必須寫。基本上,我有2個表格,我必須從一個表格中選擇具有最大結果的ID。第二個問題是有2個ID。我無法完全解釋我的意思,因爲我不確定,但我可以發佈我的指示和鏈接到表格。sql max of count 2 tables

任何幫助將不勝感激。我還在SO和其他地方看過一百萬篇其他文章,但即使它看起來有很遠的相關性,我也不知道做出什麼樣的改變來適應我的需求。

SQL SELECT MAX COUNT

所以我的任務如下: -

Display the name and the telephone number of private owners which have more properties than anybody else. 

圖像中的頂級表顯示了 「出租屬性」 表和下面顯示「私人業主」。

對於這個問題,我需要使用私人所有者表的主鍵來計算每個私人所有者可以租用的屬性的數量,然後顯示私人所有者的詳細信息,通過研究數據,可用的大多數房產是2個私人業主(CO87和CO93)。

同樣,我會很感激的任何幫助,這在所有的,我一直在拉我的頭髮了12小時的最好的部分:/

在此先感謝球員,

蒂姆。

P.S - 只爲好奇,這是SQL任務爲大學分配一個瘋狂的量的一=)

編輯: - 所有者ID都是字符串,而不是整數。

+0

另外,如果有人是足夠真棒提供一個解決方案 - 會是過分的要求仿製藥?以防其他人遇到這個乏味的問題? :) – Timmy

+1

我現在要睡覺,但看看一個dense_rank()函數... –

+0

你甚至嘗試過什麼嗎?而不是在這裏張貼你的作業,並要求我們這樣做? –

回答

1

你的過程應該是:

  1. 獲取屬性的數量爲每一位業主
  2. 與性能
  3. 的最大#尋找失主的ID查找與主人ID主人。

看起來這應該工作:

SELECT * FROM Owners 
WHERE OwnerID IN 
    (
    SELECT OwnerID 
    FROM Properties 
    GROUP BY OwnerID 
    HAVING COUNT(*) = 
     (SELECT COUNT(*) 
     FROM Properties 
     GROUP BY OwnerID 
     ORDER BY COUNT(*) DESC 
     LIMIT 1) 
) 
+1

啊,但多個業主有最大的數量...... –

+0

只要OP的文本就足夠了,因爲他正試圖讓我們做作業。 –

+0

請參閱我的編輯 - 不確定HAVING子句中的子查詢是否可以在postgresql中工作,但從邏輯上講,這是如何工作的。 –