counttimestamp返回0 DB2

问题描述

我一直在寻找答案,但是我发现并尝试过的事情似乎不起作用,或者我做错了事。

作为示例,我们有2个表:

Table Messages:
Int: id
Date: create_timestamp 
String: join_number

Table Map: 
String: entity_name 
String: join_number

我正在尝试计算create_timestamps并按Entity_name对其进行分组,因此查询为:

select count(create_timestamp) as count,entity_name from Messages left join Map on Messages.join_number = Map.join_number group by entity_name

查询工作正常,除了一个问题,如果未找到时间戳记,则不返回结果为0的实体。如果找不到任何内容,我需要它返回entity_name并返回0。

我尝试使用COALESCE进行如下查询

select COALESCE(count(create_timestamp),0) as count,entity_name from Messages left join Map on Messages.join_number = Map.join_number group by entity_name

但是它仍然不返回0值。请记住,这是一个DB2数据库在这里真的欢迎任何评论,问题或答案。

解决方法

事实证明,马克的回答是正确的。我在查询上犯了一个错误,因为我还包含了条件“ where timestamp> timestamp(xxxx)”,这导致查询不包括那些0结果。如果有人觉得它有帮助,则要选择时间戳的正确查询是:

选择count(timestamp)作为计数,从Map left join时间戳记> timestamp('2020-01-01')的消息中选择entity_name,并且Messages.join_number = Map.join_number按entity_name分组

再次非常感谢!

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...