首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Stack Exchange数据资源管理器(SEDE)按帖子数量和信誉查找用户

使用Stack Exchange数据资源管理器(SEDE)按帖子数量和信誉查找用户
EN

Stack Overflow用户
提问于 2018-10-31 11:59:29
回答 1查看 150关注 0票数 1

我想找出哪些用户在帖子数量最少(少于10篇)中享有最大的声誉。但是为什么在加入之前我不能有一个where子句呢?:

代码语言:javascript
复制
SELECT TOP 100 Users.Id, Users.DisplayName AS [Username], Users.Reputation, COUNT(Posts.Id) AS [Post Count] FROM Users
//WHERE COUNT(Posts.Id) < 10
JOIN Posts ON Posts.OwnerUserId = Users.Id 
GROUP BY Users.Id, Users.DisplayName, Users.Reputation
ORDER BY Users.Reputation DESC;

原始用户post计数示例查询位于data.stackexchange.com/stackoverflow/query/503051

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-31 19:02:47

这就是子句 (MS参考)的目的。

你可以使用:

代码语言:javascript
复制
SELECT TOP 100 Users.Id, Users.DisplayName AS [Username], Users.Reputation, COUNT(Posts.Id) AS [Post Count] FROM Users
JOIN Posts ON Posts.OwnerUserId = Users.Id
GROUP BY Users.Id, Users.DisplayName, Users.Reputation
HAVING COUNT(Posts.Id) < 10
ORDER BY Users.Reputation DESC;

但这就是,利用一些SEDE特征

代码语言:javascript
复制
-- maxRows: How many rows to return:
-- maxPosts: Maximum number of posts a user can have:

SELECT TOP ##maxRows:INT?100##
            'site://u/' + CAST(u.Id AS NVARCHAR) + '|' + u.DisplayName  AS [User]
            , u.Reputation
            , COUNT (p.Id)  AS [Post Count]
FROM        Users u
LEFT JOIN   Posts p         ON (p.OwnerUserId = u.Id  AND  p.PostTypeId IN (1, 2) )  -- Q & A only
GROUP BY    u.Id
            , u.DisplayName
            , u.Reputation
HAVING      COUNT (p.Id) <= ##maxPosts:INT?10##
ORDER BY    u.Reputation DESC
            , [Post Count]
            , u.DisplayName

你可以看它住在塞德

我特别喜欢没有帖子的高代表用户

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53082859

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档