gpt4 book ai didi

sql - 当count(*)对乘法值返回null时如何获得0值

转载 作者:行者123 更新时间:2023-12-04 18:28:43 25 4
gpt4 key购买 nike

我有一个包含错误代码和输入时间(除其他外)的表。
我需要的是一种方法来计算过去一小时内具有相同错误代码(我选择的)的行数,并将结果串成错误代码。

SELECT COUNT(*) || ',' || error_code as amount_and_code
FROM my_table
WHERE error_code in (5001, 5002, 5003, 5004, 5005)
AND entry_date >= (SYSDATE - 1/24)
group by error_code;

我得到明显的结果
AMOUNT_AND_CODE
---------------
4,5001
1,5002
2,5005

我的问题是:我怎样才能返回 0,error_code对于未找到的值。
我想得到的是
AMOUNT_AND_CODE
---------------
4,5001
1,5002
0,5003
0,5004
2,5005

有没有办法获得我正在寻找的输出?

非常感谢你的帮助,mod。

编辑:我没有包含所有错误代码的表格。
Edit2:Oracle8i 企业版 8.1.7.4.0 版

最佳答案

你可以尝试这样的事情:

SQL> create table nnn(error_code varchar2(4), entry_date date);

Table created.

SQL> insert into nnn values (5001, sysdate);

1 row created.

SQL> insert into nnn values (5003, sysdate - 10);

1 row created.

SQL>
SQL> with tbl as
2 (select 5001 error_code from dual union all
3 select 5002 error_code from dual union all
4 select 5003 error_code from dual union all
5 select 5004 error_code from dual)
6 select count(nnn.error_code), tbl.error_code
7 from nnn, tbl
8 where nnn.error_code(+) = tbl.error_code
9 and entry_date(+) >= (SYSDATE - 1/24)
10 group by tbl.error_code;

COUNT(NNN.ERROR_CODE) ERROR_CODE
--------------------- ----------
0 5003
1 5001
0 5002
0 5004

SQL>

关于sql - 当count(*)对乘法值返回null时如何获得0值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3142101/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com