sql - SQL 在 SUM 查询中创建视图或过程而不添加新列?
问题描述
假设我有一些示例数据table_name_a
如下:
code val remark date
-----------------------------------
1 00001 500 111 20191108
2 00001 1000 222 20191107
3 00002 200 111 20191108
4 00002 400 222 20191108
5 00001 200 333 20191108
6 00001 400 444 20191108
我有一个如下的 SQL 查询:
SELECT t.code,
sum(CASE WHEN t.remark IN ('111', '222', '333')
THEN t.value ELSE 0 END) AS sum_123
FROM table_name_a t
WHERE t.code='00001' and t.date='20191108'
GROUP BY t.code
输出如下:
code sum_123
------------------
1 00001 1100
现在我想在 SQL 查询(Oracle)之上创建一个视图或过程,我们不想要一个新列,是否可以让sum_123
存储到remark
列中?假设我使用下面的 SQL 查询
SELECT t.code, t.value
FROM table_name_a t
WHERE t.remark='sum_123' and t.code='00001' and t.date='20191108'
GROUP BY t.code
如果我使用上面的 SQL 查询,我的预期输出如下:
code val remark date
------------------------------------------
1 00001 1100 sum_123 20191108
是否可以使用创建视图/程序保存和remark
1100 ?非常感谢您的任何建议。val
sum_123
value/result
解决方案
这是你想要的吗?
select t.code,
sum(case when t.remark IN ('111', '222', '333') then t.value else 0 end) as val,
'sum_123' as remark,
date
from table_name_a t
where t.code = '00001' and t.date = '20191108'
group by t.code, date;
推荐阅读
- javascript - Angular 9使用字符串连接复制到剪贴板
- java - 在 Java 中使用 EvaluateXpath 返回缺失标签的 Null 值
- python - 使用 scikit-learn OneHotEncoder 时如何处理分类数据中的缺失值 (NaN)?
- android - android从活动中的片段获取视图
- flutter - Flutter - TabBar中每个Tab的单独功能
- javascript - 哪个 gnome 函数负责切换工作区?
- amazon-web-services - 在 AWS Glue 中转换其他列的数据类型时,某些列变为空
- sql-server - 将 SQL 服务器转换为 Teradata 查询
- angular - Angular 测试 NavigationError 事件处理程序
- http - 关于 HttpException 没有被捕获