sql - 如果没有记录计数,则显示零 - ORACLE SQL 查询
问题描述
error_message
下面的 Oracle 查询给出了和是否有任何不同的错误Serial_num
。
如果有零或无Different error
计数而不是显示空白/空结果。我怎样才能看到这样的输出?我尝试过NVL(error_message,0)
但COALESCE (Sum(total),0)
没有得到所需的输出。
预期输出:
1 Different Errors: 0
Oracle SQL 查询:
SELECT
1 as Index_Num,
CONCAT('Different Errors: ', error_message || '# ' || serial_num),
SUM(total)
FROM (
SELECT error_message, serial_num, COUNT(*) total
FROM Table1
WHERE error_message NOT LIKE '%INVALID%'
GROUP BY error_message, serial_num
)
GROUP BY error_message, serial_num
解决方案
CTE
为子查询创建一个并使用UNION ALL
withNOT EXISTS
来覆盖CTE
不返回任何行的情况:
WITH cte AS (
SELECT error_message, serial_num, COUNT(*) total
FROM Table1
WHERE error_message NOT LIKE '%INVALID%'
GROUP BY error_message, serial_num
)
SELECT
1 as Index_Num,
CONCAT(
'Different Errors: ',
list_agg(error_message || '# ' || serial_num) within group (order by error_message)
),
SUM(total)
FROM cte
UNION ALL
SELECT 1, 'Different Errors: ', 0
FROM dual
WHERE NOT EXISTS (SELECT 1 FROM cte)
推荐阅读
- java - 处理 @NotBlank 错误 - Spring Boot
- python - 如何将带有字符串的列替换为带有整数的列?
- jwt - 通过多个微服务进行 JWT 授权
- memory - 尝试使用众多组合功能,但都耗尽内存,如何定期写入输出以避免内存问题?
- java - Eclipse aarch64 和 OpenJDK (ARM)
- r - Shiny/R - 使单个按钮发送多个响应
- javascript - 简单的 WebRTC 网页在 Chrome 和 Safari 中运行良好,但在 Firefox 中不行
- android - Android中的一个视图(RecyclerView)中的多个问题
- arrays - 使用可变参数宏的结构初始化数组
- python - Sympy解决方案找不到答案