如何根据URI统计访问量

wwwwfly 2012-09-30 11:14:28
家里人打电话过来才知道要吃月饼了....不说了,伤心..

一个题目,比较麻烦,主要考虑效率

数据库里面存着很多条用户访问信息,以 ID-URI 的形式存放,比如:

id1 www.baidu.com/file1
id2 www.soso.com/file/file1
id1 v.sogou.com/
id1 v.soso.com/file/file.html
id2 v.soso.com/file/file.html
.
.
.
idn www.56.tv/film/file1

现在需要找到不同用户访问的共同域名,比如说上面的5条来说,排序应该是这样:
soso.com 2 (2个不同用户访问了soso.com)
sogou.com 1
baidu.com 1

其实就是找到大家普遍喜欢访问的域名,考虑到100w条记录的情况下,怎么写select ?

面试题,大体意思就这样,求助....
...全文
167 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ACMAIN_CHM 2012-10-01
  • 打赏
  • 举报
回复
select substring_index(URI,'/',1),count(*)
from table1
group by substring_index(URI,'/',1)
order by 2 desc
ACMAIN_CHM 2012-10-01
  • 打赏
  • 举报
回复
先读三遍《数据库系统概论(第四版)》 王珊 萨师煊 高等教育出版社 (掌握基础知识和概念)

然后再粗略浏览一遍MYSQL的官方手册。(方便以后查找,避免类似于考试的时候,给你本政治书也不知道答案在第几章,第几页)MySQL官方文档 http://dev.mysql.com/doc/refman/5.1/zh/index.html
wwwwfly 2012-10-01
  • 打赏
  • 举报
回复
哦,对,上面的问题我是想在程序里面(c api)完成的,所以想一次query搞定,求高手指点。
wwwwfly 2012-10-01
  • 打赏
  • 举报
回复
呵呵,有用,谢谢了,高手们有没有学习SQL语句的书推荐下?


另外追加个小问题:
数据表 (id UNSIGNED, timestamp UNSIGNED)

如果id不存在,将id和当前时间(now)插入表中
如果id存在,更新timestamp为当前时间,并且得到旧的timestamp
rucypli 2012-10-01
  • 打赏
  • 举报
回复
select substring_index(substring_index(URI,'/',1),'.',-1),count(*)
from table1
group by substring_index(substring_index(URI,'/',1),'.',-1)
order by 2 desc
  • 打赏
  • 举报
回复
1L好精简的查询语句,对我有用+1, 此贴收藏了。

56,682

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧