题解 | #月总刷题数和日均刷题数#

月总刷题数和日均刷题数

https://www.nowcoder.com/practice/f6b4770f453d4163acc419e3d19e6746

select
    coalesce(submit_month, '2021汇总'),
    count(submit_month),
    round(count(submit_month) / max(alldays), 3)
from
    (
        select
            case
                when isnull (date_format (submit_time, '%Y%m')) = 0 then date_format (submit_time, '%Y%m')
                else 0
            end as submit_month,
            dayofmonth (last_day (submit_time)) alldays,
            count(question_id) qscount
        from
            practice_record
        where
            year (submit_time) = 2021
        group by
            submit_time
    ) as newform
group by
    submit_month
with rollup

这道题很难主要难点是要把yy-mm-dd格式改成yy-mm,切要对每个月求出最大的月份这个数据在子查询中即可,在主查询中需要根据子表中的yy-mm分类,由于每个月份下的天数是固定的,所以选择max函数即可,但是由于roll up是根据select 全部属性进行一个汇总,但是由于年份系统默认为null,所以需要用coalesce函数去转换成2021年度,整体代码如上。

全部评论

相关推荐

头像
04-17 09:29
已编辑
湖南农业大学 后端
睡姿决定发型丫:本硕末9也是0offer,简历挂了挺多,只有淘天 美团 中兴给了面试机会,淘天二面挂,美团一面kpi面,中兴一面感觉也大概率kpi(虽然国企,但一面0技术纯聊天有点离谱吧)
点赞 评论 收藏
分享
后来123321:别着急,我学院本大二,投了1100份,两个面试,其中一个还是我去线下招聘会投的简历,有时候这东西也得看运气
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务