当前位置: 首页 > 面试题库 >

同一列上的不同值计数

鲜于阳成
2023-03-14
问题内容

我是Oracle的新手。我有一个Oracle表有三列:serialnoitem_categoryitem_status。在第三列中的行具有值serviceableunder_repair
condemned

我想使用count运行查询,以显示可维修的数量,正在维修的数量,针对每个项目类别的谴责数量。

我想运行类似的东西:

select item_category
  , count(......) "total"
  , count (.....) "serviceable"
  , count(.....)"under_repair"
  , count(....) "condemned"
from my_table
group by item_category ......

我无法在计数内运行内部查询。

这是我希望结果集看起来像的样子:

item_category    total    serviceable      under repair      condemned
=============    =====    ============     ============      ===========
chair              18        10               5                3
table              12        6                3                3

问题答案:

您可以在COUNT函数中使用CASE或DECODE语句。

  SELECT item_category,
         COUNT (*) total,
         COUNT (DECODE (item_status, 'serviceable', 1)) AS serviceable,
         COUNT (DECODE (item_status, 'under_repair', 1)) AS under_repair,
         COUNT (DECODE (item_status, 'condemned', 1)) AS condemned
    FROM mytable
GROUP BY item_category;

输出:

ITEM_CATEGORY   TOTAL   SERVICEABLE UNDER_REPAIR    CONDEMNED
----------------------------------------------------------------
chair           5       1           2               2
table           5       3           1               1


 类似资料:
  • 问题内容: 我编写了一个脚本,该脚本在用户每次登录我们域中的计算机时运行。此脚本记录用户以及他们登录的计算机。任意数量的用户可以登录任意数量的计算机。 我只是从一个不在的顾问那里继承了这个IT环境,并且正在编写这个小查询,因此当接到用户的呼叫时,我可以按该用户的名字进行搜索,并合理地预测该用户正在使用的计算机。他们登录到任何给定计算机的次数。 这是“登录”表中数据的示例: 我要敲定的逻辑是跨多个列

  • 使用下面的数据集,我希望找到平均速率,同时计算条件和干预中的值在同一行中的次数。 这是我使用的表的一个示例:

  • 问题内容: 我可以在不枚举的情况下计算每列的不同值吗? 说我有一个表,,,并没有其他的列。在没有明确提及这些列的情况下,我希望得到与以下结果相同的结果: 我怎样才能做到这一点 ? 问题答案: 我认为使用普通SQL可以轻松完成的最好工作就是运行这样的查询,以生成所需的查询,然后运行该查询。

  • 问题内容: 假设我有这个(MySQL)数据库,按增加的时间戳排序: 如何从该系统的上一行中选择StatusA更改的行?StatusB无关紧要(我在此问题中展示它只是为了说明每个系统可能有许多连续的行,其中StatusA不变)。在上面的示例中,查询应返回2011-01-03行(对于SystemA,StatusA在2011-01-01和2011-01-03之间更改),2011-01-06、2011-0

  • 我很难理解RabbitMQ的基本概念。我发现在线文档并不十分清楚。 到目前为止,我理解了什么是通道、队列、绑定等。 但如何实现以下用例: 用例:发件人以不同的主题发布到一个交易所。在接收者方面,根据主题,应该通知不同的接收者。 因此,通过主题交换,以下内容应该是可行的: 创建频道 我的困难在于回调与通道相关,而与队列或队列绑定无关。我不能百分之百确定我是否在这里。 这就是我的问题:为了有多个回调,

  • 我试图在Excel中编写一个宏来计算a列中相同文本的标准偏差,从B列中获取值,并在C列中给出结果: 我手动输入了等式< code>=STDEV。s(A2;a3;a4;A16)表示“aaa”。但是我需要自动完成这项工作,因为我正在做另一个由宏完成的计算和程序。以下是我的代码: 如果有人能给我一个想法或解决方案,那就太好了。上面的代码用于计算相同文本值的总和。有什么方法可以修改我的代码来计算标准差?