如何加入不同的表并根据大多数发生的记录进行排序

时间:2014-04-06 17:07:48

标签: sql

我有以下表格:

enter image description here

我想查询一下,计算自1995年以来由city_name注册的所有用户,然后按注册最多的项目进行排序。 这是我到目前为止所尝试的(请注意我对sql仍然有点新鲜):

SELECT COUNT (userID), users.userID 
FROM users FULL JOIN p.projectID FROM project 
WHERE registration_date >= '01/01/1995' 
GROUP BY (SELECT * FROM project WHERE project.projectID = user.projectID)

但是,这并没有返回正确的结果。谢谢你的帮助

1 个答案:

答案 0 :(得分:0)

你的意思是:

SELECT 
  Project.ProjectID,
  City.CityID,
  COUNT(UserID) AS UserCount
FROM Project
  INNER JOIN Users ON Users.ProjectID = Project.ProjectID
  INNER JOIN City ON City.CityID = Users.CityID
WHERE
  Users.registration_date > '1/1/1995'
GROUP BY Project.ProjectID, City.CityID
ORDER BY 
  COUNT(UserID) DESC

你说'按照注册最多的项目排序';这实际上是由注册最多的Project + City进行排序。

您可以对项目的总注册进行子选择,并将其包含在您的ORDER BY中,但这让我觉得有点奇怪的输出,所以我做了一个假设: - )