sql max计数2个表

时间:2013-11-20 23:37:01

标签: sql postgresql

我一直在搜索几个小时(下午1点到11点),以寻找我必须编写的SQL查询的解决方案。基本上,我有2个表,我必须从一个表中选择ID,在另一个表中具有最大结果。第二个问题是有2个ID。我无法解释我的意思,因为我不确定,但我可以发布我的指示和表格的链接。

任何帮助将不胜感激。我还看了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是字符串,而不是整数。

1 个答案:

答案 0 :(得分:1)

您的流程应该是:

  1. 获取每位所有者的财产数量
  2. 使用max#of properties
  3. 查找所有者ID
  4. 找到拥有这些所有者ID的所有者。
  5. 似乎这应该有效:

    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)
      )