一套 SQL 练习打通业务数据查询任督二脉
2026/5/5 20:37:57 网站建设 项目流程

sql查询题

pages 表:页面表

表的示例数据:

page_id页面路径页面名称
1/home首页
2/product/123产品详情页
3/contact联系我们页面

表字段介绍:

  • page_id:页面 ID
  • page_path:页面路径
  • page_name:页面名称
page_views 表:页面访问记录表

表的示例数据:

view_idpage_id访问日期用户IP用户ID
112024-07-01192.168.1.11
222024-07-01192.168.1.22
312024-07-02192.168.1.11

表字段介绍:

  • view_id:访问记录 ID
  • page_id:页面 ID
  • view_date:访问日期
  • user_ip:用户 IP
  • user_id:用户 ID
users 表:用户表

表的示例数据:

user_id用户名注册日期性别年龄
1张三2024-01-0128
2李四2024-02-1524
3王五2024-03-2030

表字段介绍:

  • user_id:用户 ID
  • user_name:用户名
  • registration_date:注册日期
  • gender:性别
  • age:年龄
1. 查询访问记录表中所有页面的页面 ID 和访问日期
selectpage_id,view_datafrompage_views;
2. 编写 SQL,查询页面表中页面路径为 ‘/home’ 的页面名称
selectpage_namefrompageswherepage_path='/home';
3. 查询访问记录表中用户IP为 ‘192.168.1.1’ 的所有记录
select*frompage-viewswhereuser_ip='192.168.1.1';
4.查询用户表中性别为 ‘男’ 的所有用户的用户名
selectuser_namefromuserswheregender='男';
5. 查询页面表中所有页面的页面 ID,并按页面 ID 升序排序
selectpage_idfrompagesorderbypage_idASC;
6.查询访问记录表中每个页面的总访问次数
select page_id, count(*) as total_views from page_views group by page_id;
7. 查询用户表中注册日期最早的 3 个用户的用户名和注册日期
select*fromusersorderbyregistration_dateASClimit3;
8. 查询访问记录表中每个用户的总访问次数
select user_id count(*) as total_views from page_views group by user_id;
9.查询用户表中年龄在 25 岁及以下的所有用户的用户名和年龄
selectuser_name,user_agefromuserswhereuser_age<25;
10. 查询用户表中每个性别的用户数量
selectgender,count(*)asuser_countfromusersgroupbygender;
11. 查询用户表中年龄在 25 岁及以下且性别为 ‘女’ 的用户的用户名
selectuser_namefromuserswhereuser_age<25andgender='女';
12. 查询用户表中注册日期在 2024 年 1 月 1 日之后的用户名和注册日期
selectuser_name,registration_datefromuserswhereregistration_date>'2024-01-01'
13. 查询用户表中用户名包含 ‘张’ 字的所有用户
select*fromuserswhereuser_namelike'%张%';
14. 查询所有用户中年龄最大的用户信息
select*fromusersorderbyuser_agelimit1;
15. 查询用户表中每个性别的平均年龄,并按性别分组
selectgenderavg(user_age)asavg_agefromusersgroupbygender;
16. 查询用户表中,注册日期在 2024 年 1 月 1 日和 2024 年 6 月 30 日之间的所有用户
select*fromuserswhereregistration_datebetween'2024-01-01'and'2024-06-30';
17. 查询每个页面的第一次访问日期
selectpage_id,min(view_data)asfirst_view_datafrompage_viewsgroupbypage_id;
18. 查询访问记录表中,每个页面最近一次访问的日期
selectpage_id,max(view_data)aslast_view_datafrompage_viewsgroupbypage_id;
19. 查询访问记录表中每个页面的访问次数,按访问次数从高到低排序
selectpage_id,count(*)astotal_viewsfrompage_viewsgroupbypage_idorderbytotal_viewsDESC;
20. 查询每个用户访问的不同页面的总数量(每个用户访问了多少个页面)
select user_id, count(distinct page_id) as total_views from page_views group by user_id
21. 查询在 2024 年 7 月 1 日访问过的所有用户的用户名(不能重复)
selectdistinctu.user_namefrompage_viewsaspvinnerjoinusers uonpv.user_id=u.user_idwherepv.view_data='2024-07-01';
22. 查询所有页面中访问次数最多的页面的页面名称(子查询)
selectp.page_namefrompages pjoin(selectpage_id,count(*)astotal_viewfrompage_viewsorderbytotal_viewdescgroupbypage_idlimit1)pvonp.page_id=pv.page_id
23. 查询在 2024 年 7 月 1 日访问次数最多的页面的页面路径
selectp.page_pathfrompages pjoin(selectpage_id,count(*)asview_countfrompage_viewswhereview_data='2024-07-01'groupbypage_idorderbyview_countDESClimit1;)pvonp.page_id=pv.page_id
24.查询每个用户最近一次访问的页面路径及访问日期
selectu.user_name,p.page_path,pv.view_datafromusers ujoinpage_views pvonu.user_id=pv.user_idjoinpages ponpv.page_id=p.page_idwhere(pv.user_id,pv.view_data)in(selectuser_id,max(view_data)frompage_viewsgroupbyuser_id)

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询