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

Oracle-将多个计数作为一个查询返回

杜阳泽
2023-03-14
问题内容

我有几个查询,下面详述。我希望能够运行一个同时返回两个计数的SQL查询,这可能吗?

1。

select nvl(count(rowid), 0) from tablename where OPP = 'FOO' and date = 'BAZ';

2。

select nvl(count(rowid), 0) from tablename where OPP = 'BAR' and date = 'BAZ';

到目前为止,我仅在搜索中找到MSSQL特定的解决方案。


问题答案:

如果您单行需要它们:

SELECT
    COUNT(CASE OPP WHEN 'FOO' THEN 1 END),
    COUNT(CASE OPP WHEN 'BAR' THEN 1 END)
FROM tablename
WHERE OPP IN ('FOO', 'BAR') AND date = 'BAZ'

(无论如何,Thilo的GROUP BY方法都是更好的通用解决方案。)

编辑: 我已经删除了NVL()。我已经忘记了为什么我从不使用它。



 类似资料:
  • 问题内容: 我很难优化我的SQLAlchemy查询。我的SQL知识非常基础,我无法从SQLAlchemy文档中获得所需的知识。 假设以下非常基本的一对多关系: 我怎么能: 查询每个父母的元组? 经过相当长的搜索时间后,我发现了如何分别查询这些值: 我试图以不同的方式将它们组合在一起,但没有设法得到我想要的。 查询所有顽皮孩子超过80%的父母?编辑:顽皮可能为NULL。 我猜想此查询将基于上一个查询

  • 问题内容: 我正在一个Java应用程序中工作,我需要同时执行这两个查询(如Java中的Strings),并在出现错误的地方回滚事务。 更新 我创建了一个字符串,其中两个查询用注释建议分隔开 更新 我已经尝试了JDBC原子事务作为Java中的代码。我强迫第二个sql失败,但是即使我指定.setAutoCommit(false); dblink通过第一个查询影响了另一个数据库。我在没有dblink事务

  • 我正在尝试计算配置单元中视图的平均/最小/最大记录计数 并试图实现如下内容: 但我收到一条错误消息: avg=5 min=4 max=6

  • 我想知道如何编写这个查询。 我知道这个实际的语法是假的,但它会帮助你理解我想要什么。我需要它的这种格式,因为它是一个大得多的查询的一部分。 我需要这所有返回在一个查询。 此外,它需要在一行中,因此以下操作将不起作用:

  • 问题内容: 桌子: 我的查询: 我收到“ MySQL子查询返回多个行”错误。 我知道此查询可以使用以下查询的解决方法: 然后使用php循环遍历结果并执行以下查询以获取和回显它: 但是我认为可能会有更好的解决方案? 问题答案: 简单的解决方法是在子查询中添加一个子句: 一个更好的选择(就性能而言)是使用联接:

  • 问题内容: 我有两个不同的表,在这些表上我应用了带有一些过滤器和汇总函数(如SUM,COUNT,SUBSTR)的选择查询。 我想在单个结果中获得这两个不同的输出。 查询1: 查询2: 我已经尝试过,而且都尝试过。但是那些没有用。我也尝试过,但是也没有用。请给我建议一些解决方案,在这种情况下会有所帮助。谢谢。 问题答案: 有两种将查询放在一起的方法:通过使用联接进行侧向查询,并通过联合在彼此之上进行