gpt4 book ai didi

oracle - 带有 case 条件语句的 sum 如何在 sql 中工作

转载 作者:行者123 更新时间:2023-12-01 07:55:12 25 4
gpt4 key购买 nike

前几天,我给了this的答复问题,但随后其他用户使用 sum + case 条件语句解决了该问题,以在结果中添加一个边缘条件。所以,我想到了这个问题,如何声明sum(case when jobname = 'Analyst' then 1 else 0 end)在下面的查询工作

select d.*
from (select deptno,
sum(case when jobname = 'Analyst' then 1 else 0 end) as numAnalysts
from employees
group by deptno
order by numAnalysts asc
) d
where rownum = 1;`

并返回一个部门的员 worker 数。另外,我想了解此查询的性能。

在发布这个问题之前,我阅读了 this , thisthis但仍然不明白这是如何工作的。

最佳答案

据推测,这是您难以理解的部分:

  select deptno,
sum(case when jobname = 'Analyst' then 1 else 0 end) as numAnalysts
from employees
group by deptno

这是一个简单的聚合查询,真的。查询正在做的是:
  • 查看employees中的每一行
  • jobname'Analyst'然后分配值 1 (这是 case 语句 . Otherwise, assign a value of 0`。
  • 按部门汇总,将刚刚计算的值相加。这具有计算分析师数量的效果。
  • case是一个返回值的表达式。 sum()只是将每个组的值相加。

    关于oracle - 带有 case 条件语句的 sum 如何在 sql 中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29336422/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com