Sql -WITH ... AS 的替代方案

2024-02-21

有没有一个高效的这个例子的替代SQL?我不想使用WITH ... AS,这是主要标准

WITH TEMP_TABLE AS (
     SELECT status, COUNT(1) as total FROM XYZ GROUP BY status
    )
SELECT 
         NVL((SELECT TOTAL  FROM TEMP_TABLE WHERE STATUS = 'A'),0) AS A_COUNT ,
         NVL((SELECT TOTAL  FROM TEMP_TABLE WHERE STATUS = 'B'),0) AS B_COUNT ,
         NVL((SELECT TOTAL  FROM TEMP_TABLE WHERE STATUS = 'C'),0) AS C_COUNT ,
         NVL((SELECT TOTAL  FROM TEMP_TABLE WHERE STATUS = 'D'),0) AS D_COUNT , 
         NVL((SELECT TOTAL  FROM TEMP_TABLE WHERE STATUS = 'E'),0) AS E_COUNT ,
         NVL((SELECT TOTAL  FROM TEMP_TABLE WHERE STATUS = 'F'),0) AS F_COUNT  
FROM DUAL; 

我读过类似的问题,但他们使用其他 ddl 东西,我只想要一个基本的 SQL 语句。


只需使用条件聚合:

SELECT SUM(CASE WHEN STATUS = 'A' THEN 1 ELSE 0 END) AS A_COUNT ,
       SUM(CASE WHEN STATUS = 'B' THEN 1 ELSE 0 END) AS B_COUNT ,
       SUM(CASE WHEN STATUS = 'C' THEN 1 ELSE 0 END) AS C_COUNT ,
       SUM(CASE WHEN STATUS = 'D' THEN 1 ELSE 0 END) AS D_COUNT ,
       SUM(CASE WHEN STATUS = 'E' THEN 1 ELSE 0 END) AS E_COUNT ,
       SUM(CASE WHEN STATUS = 'F' THEN 1 ELSE 0 END) AS F_COUNT 
FROM XYZ ;

我应该指出,将值放在单独的行上更加容易:

select status, count(*)
from xyz
group by status;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Sql -WITH ... AS 的替代方案 的相关文章

  • 插入现有表时出现异常 ORA-00942: 表或视图不存在

    当尝试将一批行插入现有表时 我遇到了异常 ORA 00942 表或视图不存在 我可以确认该表存在于数据库中 并且我可以使用 oracle 将数据插入到该表中 sql 开发人员 但是当我尝试在java中使用preparedstatement插
  • 查询外键列可以为NULL的地方

    我想获取数据 如果orgid 2或者如果根本没有行uid orgid is an integer 我能想到的最接近的事情就是做IS NULL但我没有得到数据uid没有一个orgid排 任何想法 select u uid u fname u
  • 在 jdbc 程序中使用时,通过 SQL 客户端插入表中的记录未显示

    我使用 SQL 客户端和 JDBC 程序将几行插入到我的表 EMP 中 使用 SQL 客户端插入的记录不会显示在 Java 的输出控制台中 我正在使用 Java 8 和 oracle 11g 数据库来插入和读取数据库 除了通过 SQL 客户
  • 存储过程 - 使用 NOT IN where 子句执行查询

    我有一个存储过程 Create PROCEDURE abc sRemovePreviouslySelectedWhereClause nvarchar max AS BEGIN SELECT FROM table WHERE nId NOT
  • SQL - 选择给定日期之前找到的第一条记录

    假设我有一张桌子 ID DATE 1 2 1 12 2 3 1 12 3 1 1 12 4 4 1 12 我将如何选择从给定日期递减时找到的第一个日期 示例 按日期查找 2012 年 4 月 1 日之前的最后一个条目 返回 SQL ID 2
  • SQL统计高于和低于平均分的学生人数

    我在下面有一个示例表 我试图获取高于平均分数的学生人数和低于平均分数的学生人数 name subject classroom classarm session first term score first term grade std1 m
  • 需要 SQL Server 查询帮助

    我在视图中存储一堆数据 将 MS Access 查询转换为视图 现在我想做的是编写一个存储过程来根据添加数据的时间提取数据 这是我正在运行的查询 Select Name PlanID ApptDate 1stAppt rn from Sel
  • 如何从 TOAD for Oracle 执行函数并将结果绑定到数据网格

    我有一个函数 它将 pl sql 对象的 VARRAY 作为其参数之一 如何执行此存储过程并将其返回的结果集绑定到 TOAD for Oracle 中的数据网格 经过一番搜索后 我找到了自己问题的答案 假设您的 varray 类型称为 va
  • 使用 to_char 格式化间隔

    以下 SQL 命令 select TO CHAR NVL arg1 arg2 TO DSINTERVAL 0 00 00 00 from table1 生成格式为 000000000 00 03 01 954000 的结果 是否可以在 to
  • 检查 SELECT 子句中的另一个表中是否存在某个值

    我想查询 table1 中的名称 并查找 table2 中是否存在名称 我有以下查询 但它似乎不起作用 有什么建议我做错了什么吗 select A name CASE WHEN A name in select B name in tabl
  • PostgreSQL Age() 函数:在不同月份登陆时出现不同/意外的结果

    今天 我在 PostgreSQL 9 6 中运行此查询时遇到了无法解释的结果 SELECT age 2018 06 30 2018 05 19 AS one age 2018 07 01 2018 05 20 AS two 两列的预期结果
  • ClassCastException:java.util.Date 无法转换为 java.sql.Date

    你好 我的代码抛出了ClassCastException StackTrace 显示 java lang ClassCastException java util Date cannot be cast to java sql Date a
  • 创建表作为 select 删除 postgresql 中的非空约束

    在 postgres sql 中 创建表时 select 删除了表上的非空约束 例如 对此没有单一命令的解决方案 要基于现有表 包括所有约束 创建表 请使用 create table B like a including constrain
  • 限制 SQL Server 连接到特定 IP 地址

    我想将 SQL Server 实例的连接限制为特定 IP 地址 我想阻止来自除特定列表之外的任何 IP 地址的任何连接 这是可以在 SQL Server 实例或数据库中配置的东西吗 听起来像是你会使用Windows防火墙 http tech
  • 使用Powershell访问远程Oracle数据库

    我需要能够连接到我的网络上基于 Windows 7 的 Oracle 服务器 32 位 Oracle XE 我需要连接的机器运行 Windows 7 64 位 两台机器上都安装了 Powershell 我已在 64 位计算机上安装了 Ora
  • 查询中列的顺序重要吗?

    当从 MySQL 表中选择列时 与表中的顺序相比 选择列的顺序是否会影响性能 不考虑可能覆盖列的索引 例如 您有一个包含行 uid name bday 的表 并且有以下查询 SELECT uid name bday FROM table M
  • java mysql 准备好的语句

    我正在尝试使用 java 向数据库中进行简单的插入 它告诉我我的 sql 语法已关闭 但是 当我复制打印出来的字符串并将其放入 phpmyadmin 中的 sql 命令中时 它会正确执行该命令 并且我似乎无法弄清楚 java 中的字符串查询
  • 根据表sql中的行替换字符串中的字符

    我需要用一些映射的字符替换字符串中的字符列表 我有一个表 dbo CharacterMappings 有 2 列 CharacterToFilter 和 ReplacementCharacter 假设这个表中有3条记录 Filter Rep
  • 将 SQL 数据中的一行映射到 Java 对象

    我有一个 Java 类 其实例字段 以及匹配的 setter 方法 与 SQL 数据库表的列名相匹配 我想优雅地从表中获取一行 到 ResultSet 中 并将其映射到此类的实例 例如 我有一个 Student 类 其中包含实例字段 FNA
  • FROM 子句中的嵌套括号是否有效的 Oracle SQL 语法?

    此查询使用正确的 Oracle 语法吗 select from dual a where a dummy X 它可以在 11g 和 12c 中运行 但它是真正有效的语法吗 或者这只是一个编译器 错误 将来可能会修复 导致代码失败 我怀疑这是

随机推荐

  • 将 pandas dataframe 转换为内存中类似文件的对象?

    我每天都会将大约 2 250 万条记录加载到 Postgres 数据库中 然后 我使用 pd read sql 读取这些数据 将其转换为数据帧 然后进行一些列操作和一些小的合并 我将修改后的数据保存为单独的表以供其他人使用 当我执行 pd
  • 数据库查询表示模拟 Windows 共享上的文件?

    有没有办法让某些东西看起来就像 Windows 文件共享上的文件 但实际上是通过 HTTP 提供的资源 对于上下文 我正在使用一个只能处理 Windows 文件共享上的文件的旧应用程序 我想创建一个简单的基于 HTTP 的服务来动态地提供文
  • 为什么我无法在 Angular 2 组件中加载谷歌地图?

    这是我的 ts 组件 import Component OnInit Output EventEmitter from angular core declare var google any Component selector app r
  • Chrome webtools 调试器自行恢复脚本执行

    我在 Chrome 开发工具中看到了奇怪的行为 我在 JavaScript 中设置了一个断点 然后断点命中并停止执行 代码窗口显示了我的代码中的断点所在的点 该窗口具有淡黄色背景颜色 然后 5 秒后执行自动神奇地恢复 而无需我告诉它 以前有
  • Angular 2 - 什么相当于 Root Scope?

    全部 我有这个组件 当我单击 href 时 如果它是 Angular 1 则应该将变量设置为根范围 如下所示 selector my component template div constructor this addTag functi
  • 在C中将十进制转换为二进制

    我正在尝试将十进制转换为二进制 例如 192 到 11000000 我只需要一些简单的代码来执行此操作 但到目前为止我的代码不起作用 void dectobin int value char output int i output 5 0
  • Angular同步http循环更新进度条

    我正在尝试使用 foreach 内的顺序 http 请求来更新进度条 这可行 但它在完成时不同步 进度条正在通过 http 调用同步 我做错了什么 angular forEach queue function item if item ui
  • F#:实现函数名与关键字begin相同的接口

    我正在尝试实现 IVector 接口 它是 Microsoft VisualC StlClr 命名空间的一部分 它有一个成员函数begin 如果我尝试实现该接口 那么它会抱怨 对象表达式中出现意外的关键字 开始 这是因为 begin 是一个
  • glibc中的CSU代表什么?

    我正在读一本article http dbp consulting com tutorials debugging linuxProgramStartup html在C启动时 它指的是函数 libc csu init 谁能告诉我 CSU 代
  • 在打字稿中应该定义什么类型的超时

    我正在尝试在打字稿中编写一个去抖函数 但不确定要设置分配给什么类型的变量setTimeout 我的代码如下所示 function debounced func gt void wait number what type should tim
  • Ajax 操作 URL 不起作用 + Symfony2

    我想使用 jquery 自动完成功能进行 ajax 调用 如下所示 register player team autocomplete source function request response ajax url path volle
  • VIM:全局匹配行,删除此行和以下2行

    以下是我的想法 g All Claims t 0 3d 但这不起作用 在这种模式下乘以一个动作似乎是无效的语法 我最终得到了以下序列 qq All Claims t 0 3dd q 10000 q 这种宏观组合效果很好 我只是好奇是否有一些
  • Webpack:将 html 部分包含在另一个部分中?

    有没有办法使用 webpack 将 html 部分包含在另一个部分中 我正在使用 html loader 来执行此操作 索引 html 但是当我尝试在 header html 中包含另一个部分时 它无法渲染它 这是行不通的 header h
  • 在 GEdit 中创建您自己的语法突出显示?

    如何将 关键字 添加到 GEdit 关键字列表中 我基本上想让 printf 函数看起来像一个关键字 printf Hello World n GEdit 使用Gtk源视图 http projects gnome org gtksource
  • 基于 XMPP 协议的 Google Cloud Messaging(使用 PHP 和 XMPPHP 的服务器)。它是如何工作的?

    也许你已经听说过它 它是在一个月前的 Google IO 上宣布的 Google Cloud Messaging 仅位于下游 服务器 gt 电话 但现在通过增强的 CCS 云连接服务器 您可以通过持久 TCP 连接向上游发送消息 这要归功于
  • 标准定义的setjmp备注

    ISO IEC 9899 1999 7 13 1 1 setjmp 宏 环境限制 4 应出现 setjmp 宏的调用 仅在以下情况之一 整个控制 选择或迭代语句的表达式 a 的一个操作数 关系运算符或相等运算符 另一个操作数为整数 常量表达
  • 由于异步图像加载,图像的宽度和高度为零

    我有一个很长的base64输入我得到的字符串 我想将其设置为src图像的 img attr src base64data console log height img height console log width img height
  • Pandas 按每列分组并为每组添加新列

    我有一个像这样的数据框 lvl1 l1A l1A l1B l1C l1D lvl2 l2A l2A l2A l26 l27 wgt 2 3 15 05 3 lvls lvl1 lvl2 df pd DataFrame wgt lvls re
  • 多行字符串作为序列的一部分

    我不知道如何使用多行字符串作为 yaml 序列的一部分 foo bar bar2 gt super duper long string that I would like to have on multiple lines Another
  • Sql -WITH ... AS 的替代方案

    有没有一个高效的这个例子的替代SQL 我不想使用WITH AS 这是主要标准 WITH TEMP TABLE AS SELECT status COUNT 1 as total FROM XYZ GROUP BY status SELECT