提问表question | ||
id | 主键 |
|
name | 用户 | varchar |
content | 内容 | varchar |
client_type | 客户端类型(1PC,2APP) | int |
product_id | 商品编号 | int |
status | 状态(0待审,1通过、-1删除) | int |
created | 创建时间 | datetime |
modified | 修改时间 | datetime |
回答表answer | ||
id | 主键 |
|
name | 用户 | varchar |
content | 内容 | varchar |
client_type | 客户端类型(1PC,2APP) | int |
question_id | 问题ID | int |
isBest | 是否最佳答案(Y,N) | varchar |
status | 状态(0待审,1通过、-1删除) | int |
created | 创建时间 | datetime |
modified | 修改时间 | datetime |
注:一个问题可以被多个用户回答,一个用户对于同一个问题只能回答一次
1、 查询“张三”提问的总数量;
2、 查询“张三”回答的问题和回答内容;
3、 查询最近7天的每个商品对应客户端的提问数,按照降序排列;
4、 查询历史提问最多的用户及提问数量;
5、 查询(提问总数+回答总数)最多的用户;
6、 查询每个商品下已通过问题的回答率,按照回答率降序排列;
7、 查询回答率最高的商品编号;
8、 查询商品下的在24小时内有回答的问题商品,按照被回答问题的个数降序排列;
9、 查询每个用户的提问总数和回答总数;
10、 查询每个用户每天对应的提问数和回答数;
11、 查询回答总数大于50且回答的商品个数大于10的用户,按照回答总数降序排列;
12、 查询每个商品最佳答案个数;
考察点:
Where:根据指定条件查询某张表
Group by:分组查询,出现分别、每个、每种等类似字眼的时候
Having:只能跟在group by 后面使用,是对每组数据进行的条件筛选
Max:获取查询表中某一列的最大值,如果分组的话可以分别取出每组里面的最大值
Sum:获取某一列的总和,如果分组的话可以分别获取每组的某一列总和
Count:获取查询结果的记录条数,了解count(1),connt(*),count(列名)的区别
Distinct:去重
Limit、Top:获取查询结果的前多少条记录
Union、Union all:合并查询结果,union去重,union all不去重
Join、笛卡尔积:左右内外联接,尽量避免笛卡尔积
Like:匹配相似数据
各类函数:日期处理函数、判空函数、case when