我无法解决如何进行SQL查询,并想知道是否有人可以提供帮助。在我的应用程序中,我有用户可以提问,我想实现一些功能来确定最活跃的问题海报是谁。
表结构如下:
用户:
UserID
(主键),Username
问题:Question ID
(PK),UserID
(外键)QuestionText
,DateTime
被问及
我想要做的是找出谁问了大多数问题然后返回他们的用户名。我无法在互联网上找到类似解决方案的答案。我所能做的就是计算所提问题的数量,以及不同用户提出的问题数量,例如:提问题总数为9,发布问题的用户总数为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