当前位置: 首页 > news >正文

陈塘庄做网站公司有哪些免费网站可以发布广告

陈塘庄做网站公司,有哪些免费网站可以发布广告,句容网站建设,做网站的调查问卷官网链接: 月总刷题数和日均刷题数_牛客题霸_牛客网现有一张题目练习记录表practice_record,示例内容如下:。题目来自【牛客题霸】https://www.nowcoder.com/practice/f6b4770f453d4163acc419e3d19e6746?tpId240 0 问题描述 基于练习记录表…

  官网链接:

月总刷题数和日均刷题数_牛客题霸_牛客网现有一张题目练习记录表practice_record,示例内容如下:。题目来自【牛客题霸】icon-default.png?t=N7T8https://www.nowcoder.com/practice/f6b4770f453d4163acc419e3d19e6746?tpId=240

0 问题描述

    基于练习记录表practice_record,统计出2021年每个月里用户的月总刷题数month_q_cnt 和日均刷题数avg_day_q_cnt(按月份升序排序)以及该年的总体情况,示例数据输出如下:

1 数据准备

CREATE TABLE  practice_record (id int PRIMARY KEY AUTO_INCREMENT COMMENT '自增ID',uid int NOT NULL COMMENT '用户ID',question_id int NOT NULL COMMENT '题目ID',submit_time datetime COMMENT '提交时间',score tinyint COMMENT '得分'
)CHARACTER SET utf8 COLLATE utf8_general_ci;INSERT INTO practice_record(uid,question_id,submit_time,score) VALUES
(1001, 8001, '2021-08-02 11:41:01', 60),
(1002, 8001, '2021-09-02 19:30:01', 50),
(1002, 8001, '2021-09-02 19:20:01', 70),
(1002, 8002, '2021-09-02 19:38:01', 70),
(1003, 8002, '2021-08-01 19:38:01', 80);

2 数据分析

方式一:union all 常规做法

-- 方式一:
selectDATE_FORMAT(submit_time,'%Y%m') as submit_month,count(1)as month_q_cnt,round(count(1)/ max(day(last_day(submit_time))) ,3) as avg_day_q_cnt
from practice_record
where year(submit_time) = '2021'group by DATE_FORMAT(submit_time,'%Y%m')
union all
select'2021汇总' as submit_month,count(1) as month_q_cnt,round(count(1) / 31 ,3) as avg_day_q_cnt
from practice_record 
where score is not null and year(submit_time) = '2021'
order by submit_month;

上述代码用到的函数:last_day()返回参数日期的最后一天,day(last_day())返回当月的天数

ps:这里最容易出错的点在于:每月天数的计算

(1) 计算每个月的天数可以用函数:day(last_day(datetime));
(2) 一年12月,每个月的天数: case when month(datetime) in (1,3,5,7,8,10,12) then 31 else 30 end 
(3) 最容易出错的点在于 : group by DATE_FORMAT(submit_time,'%Y%m') 分组后,select后面只能跟:group by 分组字段、常量、以及 count()/ max()/min()/avg()/sum()等聚合函数;

     由于 count(1) / max(day(last_day(submit_time))  中 分子count(1)用的是聚合函数,分母也必须用聚合函数,而函数day() 不是聚合函数,因此分母最终的逻辑为:max(day(last_day(submit_time)) 或min(day(last_day(submit_time))

方式二:with rollup

select coalesce(months,'2021汇总') as submit_month,count(question_id) as month_q_cnt,round(count(question_id)/max(days),3) as avg_day_cnt
from(select question_id,date_format(submit_time,'%Y%m') as months,day(last_day(submit_time)) as daysfrom practice_recordwhere year(submit_time)= '2021')  tmp1
group by months
with rollup;

上述代码拆解:

step1:利用date_format函数及day(last_day(submit_time)) 函数分别获取月份及当月的天数

select question_id,date_format(submit_time,'%Y%m') as months,day(last_day(submit_time)) as days
from practice_recordwhere year(submit_time)= '2021'

step2:  利用 group by with rollup 实现分组加和,利用ifnull/coalesce函数进行null值判断及补全:coalesce(months,'2021汇总') as submit_month

最终的代码如下:

select coalesce(months,'2021汇总') as submit_month,count(question_id) as month_q_cnt,round(count(question_id)/max(days),3) as avg_day_cnt
from(select question_id,date_format(submit_time,'%Y%m') as months,day(last_day(submit_time)) as daysfrom practice_recordwhere year(submit_time)= '2021')  tmp1
group by months
with rollup;

group by with rollup具体使用案例见文章:

MySQL ——group by子句使用with rollup-CSDN博客MySQL ——group by子句使用with rolluphttps://blog.csdn.net/SHWAITME/article/details/136078305?spm=1001.2014.3001.5502

3 小结

   上述案例最关键的点在于:group by 分组后,select后面只能跟:

(1) groupby 分组的字段;

(2)常量;

(3) count()、 max()、 min()、avg()、sum()等聚合函数;

http://www.hengruixuexiao.com/news/34493.html

相关文章:

  • html5网站设计网站优化公司大家好
  • 嘉兴seo网站排名优化百度网站优化培训
  • 一般网站建设步骤秘密入口3秒自动进入
  • 中国企业信用信息公示网查询系统站群seo
  • 功能型类的网站重庆seo公司怎么样
  • 企业网站如何做网警备案营销100个引流方案
  • 做软件外包公司廊坊网站建设优化
  • 香港物理服务器租用东莞百度seo排名
  • 上海做网站大的公司有哪些朝阳seo排名
  • 怎么做网站在谷歌免费推广网站2023mmm
  • 网站建设销售员免费的关键词优化软件
  • 网站优化排名分享隐迅推宁波seo推广外包公司
  • 网站开发岗位就业分析网络舆情监测平台
  • 做照片视频的网站网站推广的主要方式
  • 云服务器建立多个网站吗找一个免费域名的网站
  • 做网页和网站有什么区别吗百度营销推广登录
  • 网站移动端建设无忧软文网
  • 网络公司做网站后交代给客户什么公关公司一般收费标准
  • 网站开发阶段怎么做测试国产搜什么关键词最好看
  • 长春有什么好的网站制作公司成品网站1688入口网页版怎样
  • 网站建设专业性的评价内容广州推广优化
  • 网站开发的最初阶段包括网站外包
  • 个人淘客网站备案东莞疫情最新数据
  • 湖州设计公司seo推广绩效考核指标是什么
  • wordpress 锚点定位搜索引擎营销优化
  • 免费照片的网站模板百度网站优化
  • 网站图片上字体动态怎么做的哪里可以免费推广广告
  • 网站开发网站开发东莞疫情最新通告
  • 低价网站制作企业一点优化
  • 公司做网站留言板手机百度问一问