SQL查询 - 无效的列名和参数 - data.SE

时间:2012-09-27 19:31:09

标签: sql stackexchange dataexplorer

不是程序员,而是使用data.stackexchange.com。我正在查询公共SE数据资源管理器,我指定的列名无效。另外,如何指定计数(帖子)和计数(投票)? 有谁查询过data.se并且知道db模式能够帮我纠正这段代码吗?

Select Count (u.Id)
From Users u 
Left Join Posts p on u.Id = p.OwnerUserId
Left join SuggestedEdits e on u.Id = e.OwnerUserId
left join Votes v on u.Id = v.UserId
WHERE ((u.CreationDate BETWEEN 'qwerty' AND 'qwerty')
AND (p.CreationDate BETWEEN 'qwerty' AND 'qwerty')
AND (p.ClosedDate is null)
OR (e.CreationDate BETWEEN 'qwerty' AND 'qwerty'))
AND Count (Posts) = x
OR Count (Votes) = y
Group by u.CreationDate, p.OwnerUserId, UserTypeId, u.DisplayName, p.CreationDate

1 个答案:

答案 0 :(得分:2)

您是否尝试过撰写查询选项found here。如果单击该链接,则会在侧栏的右侧显示数据库架构。

请注意,可以隐藏侧边栏,只需点击链接即可再次显示。这就是你需要的吗?

修改

我仍然不确定你要做什么。如果我在你的位置,我会先开始对每个表进行一些简单的查询。这样您就可以看到那里存储了哪些数据。

运行此查询并查看结果:

SELECT *
FROM Users
WHERE CreationDate BETWEEN '2012-06-01 08:00:00' AND '2012-06-02 09:00:00'

运行此查询并查看结果:

SELECT *
FROM Posts
WHERE CreationDate BETWEEN '2012-06-01 08:00:00' AND '2012-06-02 08:10:00'

运行此查询并查看结果:

SELECT *
FROM Votes
WHERE CreationDate BETWEEN '2012-06-01 08:00:00' AND '2012-06-02 08:10:00'

我不确定为什么你在你的联接中包含了SuggestedEdits表,因为它似乎没有在其他任何地方使用该表。所以不要理会。

现在看到数据看起来像什么之后,您应该能够将它们拼凑在一起以找到您所追求的内容。哪个我还不知道?希望这样的事情能帮助你入门。此查询将返回一些结果,但我不确定它是您所追求的。

SELECT Count(u.Id), Count(p.Id), Count(v.Id)
FROM Users u
LEFT JOIN Posts p on u.Id = p.OwnerUserId
LEFT JOIN Votes v on u.Id = v.UserId
WHERE u.CreationDate BETWEEN '2012-06-01 08:00:00' AND '2012-06-02 09:00:00'
GROUP BY u.CreationDate, p.OwnerUserId, v.VoteTypeId, u.DisplayName, p.CreationDate