题解 | #某宝店铺的SPU数量#

union 是在order by之前进行的,因此对单表进行order by使用括号即可 我在每次添加合计行的时候就会添加临时表,这样在数据较大的情况下可以减少查询次数增加效率,

with d_id as (select driver_id,grade from tb_get_car_order
              where driver_id in 
(select driver_id from tb_get_car_order
where finish_time is not null and 
      start_time is null) ) 
      
(select driver_id,round(avg(grade),1)
from d_id
group by driver_id
order by driver_id)
union
select "总体" ,round(avg(grade),1)
from d_id 
 

也可以使用ifnull 搭配 with rollup 方法 在这个SQL查询中,IFNULL 函数用于处理可能为 NULL 的值。具体来说,这里的 IFNULL(driver_id, "总体") 表达式的功能如下:

  • 如果 driver_id 不是 NULL,那么它会直接返回 driver_id 的值。
  • 如果 driver_idNULL,那么它会返回字符串 "总体"

在这段SQL代码中,WITH ROLLUP 子句会在结果集中添加一个汇总行,该行通常包含 NULL 值作为分组键。这意味着,除了按每个司机ID分组外,还会有一个额外的行,代表所有司机的平均等级。由于这个额外的行的 driver_id 字段将是 NULL,因此使用 IFNULL 将其替换为 "总体",以便更好地理解和标识这个汇总行。

例如,假设 GROUP BY driver_id WITH ROLLUP 导致结果集中有一行 driver_idNULL,代表所有司机的平均等级,那么这一行就会显示为:

| driver_id | avg_grade |
|-----------|-----------|
| 总体      | 4.5       |

这样可以清楚地表明这是所有司机的整体平均等级。如果没有使用 IFNULL,那么 driver_id 将显示为 NULL,可能不太直观。

全部评论
好像没有过滤时间,10月有过取消订单的司机
点赞 回复 分享
发布于 2022-04-06 16:03

相关推荐

不愿透露姓名的神秘牛友
07-10 12:10
点赞 评论 收藏
分享
Twilight_m...:表格简历有点难绷。说说个人看法: 1.个人基本情况里好多无意义信息,什么婚姻状况、健康状况、兴趣爱好、户口所在地、身份证号码、邮政编码,不知道的以为你填什么申请表呢。 2.校内实践个人认为对找工作几乎没帮助,建议换成和测开有关的项目,实在没得写留着也行。 3.工作经历完全看不出来是干什么的,起码看着和计算机没啥关系,建议加强描述,写点你在工作期间的实际产出、解决了什么问题。 4.个人简述大而空,看着像AI生成,感觉问题最大。“Python,C,C++成为我打造高效稳定服务的得力工具”、“我渴望凭借自身技术知识与创新能力,推动人工智能技术的应用发展,助力社会实现智能化转型”有种小学作文的美感。而且你确定你个人简述里写的你都会嘛?你AI这块写的什么“深入研究”,发几篇顶会的硕博生都不一定敢这么写。而且你AI这块的能力和软测也完全无关啊。个人简述建议写你对哪些技术栈、哪些语言、哪些生产工具的掌握,写的有条理些,而且最好是和测开强相关的。
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务