【发布时间】:2020-11-05 16:40:53
【问题描述】:
我一直在努力寻找答案,但我发现和尝试的方法似乎不起作用,或者我做错了什么。
例如,我们有 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 数据库,非常欢迎任何 cmets、问题或答案。
【问题讨论】:
-
使用
Map left join Messages而不是Messages left join Map。 -
您好,谢谢您的建议!只是尝试过,不幸的是仍然得到相同的结果:(
-
检查以下example。
标签: count db2 left-join coalesce