问大家一个mysql的问题

新手上路,请多包涵

面试遇到的问题
,一张点赞表,有id自增主键,w_id文章id,create_time点赞时间(2018-10-02 11:50:22形式的)。求获取10.1号到10.10号之间,每天每个文章点赞数量

阅读 1.8k
3 个回答

这个题目还是挺恶心的,对于我这种平时写SQL要试好几次,外加百度才能写出来的选手,手写肯定是会写错的.
这个要用到
count,毫无疑问
date_format,或者其他处理日期的办法,比如字符串截取,这里不展开了,用来将数据库里的时间转换为日期字符串.
group by,每天每篇文章的点赞数量,也就是根据文章和日期进行分组,count总共出现的条目数.

思路就是这个样子..

SELECT
    `w_id` AS `文章id`,
    COUNT(1) AS `数量`,
    DATE_FORMAT(`ct`, "%Y/%m/%d") AS `日期`
FROM
    test
WHERE
    `ct` BETWEEN "2018-10-10"
AND "2018-11-1"
GROUP BY
    `w_id`,
    `日期`;

clipboard.png

clipboard.png

select w_id, count(*) from dianzan where create_time >= '2018-10-01' and create_time < '2018-10-10' group by w_id 
SELECT 
    DATE_FORMAT(`create_time`, '%Y-%m-%d') as `day`, 
    `w_id`, 
    COUNT(1) 
FROM `dianzan`
GROUP BY `day`, `w_id`;
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题