哪位sql高手,帮我想一个排序的查询呗

来源:百度知道 编辑:UC知道 时间:2024/06/01 15:38:42
表一:user
字段:user_id user_name
表二:news
字段:news_id news_title user_id news_date
要求按照当天发布信息的多少对user内所有用户进行排序

select count(*),user_id
from news a inner join user b on a.user_id=b.user_id
where datediff(d,news_date,getdate())=0
group by user_id
order by count(*) desc

试一下,应该可以通过的

select [user_name],ct from [user] a,
(select [user_id],news_date,count([user_id]) ct from news group by [user_id],news_date) b
where a.[user_id] = b.[user_id]
order by news_date,ct desc

select user_name,count from
(select a.user_name user_name,count(*) count from user a,news b where a.user_id=b.user_id
and news_date='年月日') c
where order by count desc

从多到少排

如果从少到多排就不加desc

select a.user_id ,a.user_name ,b.news_id ,b.news_title ,b.news_date from user a inner join news b on a.user_id = b.user_id
where b.news_date like '2009-3-3% '
group by (a.user_id)
对 2009-3-3 这一天的所有信息,利用User表中的user_id进行排序
where 后面的like 也可以改写成Between '2009-3-3' and '2009-3-4'查询3到4号之间的所有数据。