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

标签 sql oracle

我有几个疑问,详情如下。我希望能够运行一个返回两个计数的 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() .我已经忘记了为什么我从不使用它。

关于sql - Oracle - 将多个计数作为一个查询返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6356564/

相关文章:

SQL 查询连接两个表的结果但还包括在另一个表中没有对应行的行?

java - 使用 JDBC 运行 Drop Tablespace 命令时,操作系统中的数据文件未删除

sql - postgres/甲骨文 : get last non-null value within group

sql - 如何解锁 SQL Server 2012 中的表?

SQL脚本太大,无法在SQL Server中打开

oracle - ORA-00942: 可以选择 "schema.table"但不能选择 "table"?

SQL - 从 Select + 用户定义的列和值创建表

sql - Oracle中如何根据条件选择列值

用于生成报告的 MySql 查询

php - 如何在mysql中具有外键属性的表中插入新记录