SQL Count返回问题最多的用户名

时间:2014-03-07 11:37:49

标签: sql count

我无法解决如何进行SQL查询,并想知道是否有人可以提供帮助。在我的应用程序中,我有用户可以提问,我想实现一些功能来确定最活跃的问题海报是谁。

表结构如下:

用户: UserID(主键),Username

问题:Question ID(PK),UserID(外键)QuestionTextDateTime被问及

我想要做的是找出谁问了大多数问题然后返回他们的用户名。我无法在互联网上找到类似解决方案的答案。我所能做的就是计算所提问题的数量,以及不同用户提出的问题数量,例如:提问题总数为9,发布问题的用户总数为2。

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

仅选择一个发布了最大问题数的问题海报。 SQL Server

SELECT TOP 1 username
FROM
(
Select userid,username,count(*) as numQuestion
From user u
inner join question q
on u.userid=q.userid
Group by userid,username
)Z
order by numQuestion desc

MySQL的

SELECT  username
FROM
(
Select userid,username,count(*) as numQuestion
From user u
inner join question q
on u.userid=q.userid
Group by userid,username
)Z
order by numQuestion desc
Limit 1

答案 1 :(得分:0)

或者你也可以试试这个:

select count(*) as counter,
name from user join question 
on user.id = question.userid group by user.id
order by counter desc limit 1

sql fiddle