SQL 查询 7天内 发表文章 数量 最多的10个用户 条件栏目id=2
SQL查询7天内发表文章数量最多的10个用户条件栏目id=2表名U_Article表列:文章id用户名称添加日期栏目id表内列内容的解释:文章id为数字用户名称为中文添加...
SQL 查询 7天内 发表文章 数量 最多的10个用户 条件栏目id=2
表名U_Article
表列:文章id 用户名称 添加日期 栏目id
表内列内容的解释:
文章id为 数字
用户名称为 中文
添加日期格式为 2011/4/17 0:43:10
栏目id为 数字
请师兄们帮我看看应该如何写查询条件.
文章id为 Id 格式为数字
用户名称为 UserName 格式为中文
添加日期格式为 AddTime 格式为2011/4/17 0:43:10
栏目id为 sslm_Id 格式为数字
首先谢谢热心网友的回答,我先去调试一下看看.
按照发表数量倒序排列这10个用户名称 展开
表名U_Article
表列:文章id 用户名称 添加日期 栏目id
表内列内容的解释:
文章id为 数字
用户名称为 中文
添加日期格式为 2011/4/17 0:43:10
栏目id为 数字
请师兄们帮我看看应该如何写查询条件.
文章id为 Id 格式为数字
用户名称为 UserName 格式为中文
添加日期格式为 AddTime 格式为2011/4/17 0:43:10
栏目id为 sslm_Id 格式为数字
首先谢谢热心网友的回答,我先去调试一下看看.
按照发表数量倒序排列这10个用户名称 展开
展开全部
用易点CMS做的吧!嘿嘿。
SELECT TOP 10 *
FROM (SELECT COUNT(UserId) AS diancms, UserName, userid
FROM D_U_Article
WHERE (DATEDIFF([day], AddTime, GETDATE()) <= 7) and LanMu_Id=2
GROUP BY UserId, UserName) DianCMSTable
ORDER BY diancms DESC
此代码是测试过的,希望对你有用。
SELECT TOP 10 *
FROM (SELECT COUNT(UserId) AS diancms, UserName, userid
FROM D_U_Article
WHERE (DATEDIFF([day], AddTime, GETDATE()) <= 7) and LanMu_Id=2
GROUP BY UserId, UserName) DianCMSTable
ORDER BY diancms DESC
此代码是测试过的,希望对你有用。
追问
谢谢grassland619师兄,也为祝您好人一生幸福安康.
SELECT TOP 10 *
FROM (SELECT COUNT(UserId) AS diancms, UserName, UserId
FROM D_U_Article
WHERE (DATEDIFF([day], AddTime, GETDATE()) <= 7) and sslm_Id=2
GROUP BY UserId, UserName) DianCMSTable
ORDER BY diancms DESC
感觉这个比较精炼些,有需要的朋友可以参照着试试.
展开全部
select top 10
用户名称,栏目,count(文章ID)分类发帖数
from U_Article
where 添加日期 between '查询起始日期' and '查询截止日期' --*
and 栏目='条件栏目' --这里=2
group by 用户名称,栏目
order by count(文章ID) desc --逆序
*注
如果用一个时间(截止时间)来反推起始时间,这行要这样:
where 添加日期 between dateadd(day,-6,'截止时间')
and dateadd(day,1,'截止时间')
另外,这里的条件包含[栏目],所以是分栏下数量最多,并不一定是总数最多.
用户名称,栏目,count(文章ID)分类发帖数
from U_Article
where 添加日期 between '查询起始日期' and '查询截止日期' --*
and 栏目='条件栏目' --这里=2
group by 用户名称,栏目
order by count(文章ID) desc --逆序
*注
如果用一个时间(截止时间)来反推起始时间,这行要这样:
where 添加日期 between dateadd(day,-6,'截止时间')
and dateadd(day,1,'截止时间')
另外,这里的条件包含[栏目],所以是分栏下数量最多,并不一定是总数最多.
更多追问追答
追问
没关系,我把 and 栏目='条件栏目' 删除掉就是这个表总的排序了.师兄您说对吗?
还有,这个查询起始日期我这里没法写在标签里面,所以要用您说的反推了.
追答
可以,
另外,因为添加日期格式为 2011/4/17 0:43:10
所以实际上查询的内容是,从下一天的00:00:00到六天前的00:00:00
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
SELECT TOP 10 *
FROM (SELECT COUNT(UserId) AS id2 , UserName, userid
FROM 表名 WHERE (DATEDIFF([day], AddTime, GETDATE()) <= 7) and LanMu_Id=2
GROUP BY UserId, UserName) 表名 ORDER BY id2 DESC
FROM (SELECT COUNT(UserId) AS id2 , UserName, userid
FROM 表名 WHERE (DATEDIFF([day], AddTime, GETDATE()) <= 7) and LanMu_Id=2
GROUP BY UserId, UserName) 表名 ORDER BY id2 DESC
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-04-20
展开全部
select top 10 用户名称 from 表 where 条件栏目id=2 and sum(文章id) as count group by 用户名称 order by count;
可能有点毛病 没有表 没法调试
可能有点毛病 没有表 没法调试
更多追问追答
追问
您好师兄, 7天体现出来了吗?
追答
哦 忘了 你在后边加上个条件 and 时间 between datetime。now and datatime.now-7
晕 数据库里的时间函数不太会 你查查该怎么写 反正是这个意思
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询