over partition by与group by 的区别
http://csbison.iteye.com/blog/482964
?
http://www.cnblogs.com/rootq/archive/2009/03/12/1409674.html
?
9、在1亿条用户记录里,如何快速查询统计出看了5个电影以上的用户?
建索引 (user_id)。
文件的话不会处理,或者将(看电影连续剧等的记录)装载到数据库中
假设为数据库的表 ta 一天数据量为5千万
select user_id
from
(select user_id,film_id,row_number()(over partition by user_id) film_cnt
from ta where style='film' and deal_date=20100201)
where film_cnt>=5
?
2.select * from
(select user_id,username,rank() over (partition by dept_id order by user_atte_id desc) od from t_user)
where od=1
按dept_id分组,然后按user_atte_id倒序排列
?
把上面的rank()换成row_number(),数据少了一行,在求第一名成绩的时候,不能用row_number(),因为如果同班有两个并列第一,row_number()只返回一个结果
select * from
(select user_id,username,row_number() over (partition by dept_id order by user_atte_id desc) od from t_user)
where od=1;
?
?