当cte不匹配时包含cte的值

贾努斯·恩斯特罗姆(JanusEngstrøm)

在我的表格中,我有一些条目-通过表格的日期列-不早于2016年1月4日(2016年1月4日)。现在,我想进行一个查询,该查询或多或少地对具有特定日期值的行数进行计数,但是我希望此查询能够为表中不存在的日期返回0计数。

我有这个:

with date_count as (select '2016-01-01'::date + CAST(offs || ' days' as
interval) as date from generate_series(0, 6, 1) AS offs ) select
date_count.date, count(allocation_id) as packs_used from medicine_allocation,
date_count where site_id = 1 and allocation_id is not null and timestamp
between date_count.date and date_count.date + interval '1 days' group by
date_count.date order by date_count.date;

这无疑为我提供了表中日期的一个很好的汇总视图,但是由于没有行来自2016年1月4日之前,因此它们不会显示在结果中:

"2016-01-04 00:00:00";1
"2016-01-05 00:00:00";2
"2016-01-06 00:00:00";4
"2016-01-07 00:00:00";3

我想这样:

"2016-01-01 00:00:00";0
"2016-01-02 00:00:00";0
"2016-01-03 00:00:00";0
"2016-01-04 00:00:00";1
"2016-01-05 00:00:00";2
"2016-01-06 00:00:00";4
"2016-01-07 00:00:00";3

我也尝试过在CTE上进行正确的联接,但这会产生相同的结果。我不太了解如何执行此操作……那里有什么帮助吗?

最好的,贾纳斯

戈登·利诺夫(Gordon Linoff)

您只需要一个left join

with date_count as (
      select '2016-01-01'::date + CAST(offs || ' days' as
interval) as date
      from generate_series(0, 6, 1) AS offs
     )
select dc.date, count(ma.allocation_id) as packs_used
from date_count dc left join
     medicine_allocation ma
     on ma.site_id = 1 and ma.allocation_id is not null and
        ma.timestamp between dc.date and dc.date + interval '1 days'
group by dc.date
order by dc.date;

忠告:不要FROM子句中使用逗号始终使用显式JOIN语法。

您还将注意到,where条件已移至该ON子句。这是必需的,因为它们在第二个表上。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

CTE中的CTE

来自分类Dev

从CTE插入

来自分类Dev

错误:在CTE中执行查询时,缺少表“ cte”的FROM子句条目

来自分类Dev

使用模板的参数时类型/值不匹配

来自分类Dev

Excel VLOOKUP不匹配仅包含数字的值

来自分类Dev

将字段不包含数组中的值的文档匹配

来自分类Dev

具有CTE的SQL Update不更新记录

来自分类Dev

递归CTE错误:类型不匹配

来自分类Dev

SQL Server:带日期的递归CTE-类型不匹配

来自分类Dev

SQLAlchemy递归CTE查询不返回非列成员吗?

来自分类Dev

检查单元格的值时类型不匹配

来自分类Dev

ValueError:预测新值情感分析时维度不匹配

来自分类Dev

包含带有CMake的库时路径不匹配

来自分类Dev

提取容器ID时出错-源值不包含匹配器的logs_path'/ var / lib / docker / containers /'

来自分类Dev

SQL CTE返回不按表达式分组

来自分类Dev

ValueError长度不匹配预期轴包含2个元素,新值包含3个元素

来自分类Dev

数字表的SQL CTE静态值快速,而表值慢

来自分类Dev

使用vba修剪值时键入不匹配(错误13)

来自分类Dev

PostgreSQL通过CTE优化包含Window函数的查询性能

来自分类Dev

递归查询“ CTE”的列“ ProductNames”中的锚点与递归部分之间的类型不匹配

来自分类Dev

从CTE插入

来自分类Dev

解码字符串时哈希值不匹配

来自分类Dev

不返回任何内容时,t-sql会强制显示一条消息。使用CTE和CASE

来自分类Dev

包含性的RavenDB日期范围查询不包含预期的匹配日期值

来自分类Dev

使用反射获取属性值时参数计数不匹配

来自分类Dev

加入CTE时出错

来自分类Dev

cte递归错误在锚点之间不匹配

来自分类Dev

为什么递归 cte 不返回重复项?

来自分类Dev

更新 cte 'result' 失败,因为它包含派生或常量字段

Related 相关文章

  1. 1

    CTE中的CTE

  2. 2

    从CTE插入

  3. 3

    错误:在CTE中执行查询时,缺少表“ cte”的FROM子句条目

  4. 4

    使用模板的参数时类型/值不匹配

  5. 5

    Excel VLOOKUP不匹配仅包含数字的值

  6. 6

    将字段不包含数组中的值的文档匹配

  7. 7

    具有CTE的SQL Update不更新记录

  8. 8

    递归CTE错误:类型不匹配

  9. 9

    SQL Server:带日期的递归CTE-类型不匹配

  10. 10

    SQLAlchemy递归CTE查询不返回非列成员吗?

  11. 11

    检查单元格的值时类型不匹配

  12. 12

    ValueError:预测新值情感分析时维度不匹配

  13. 13

    包含带有CMake的库时路径不匹配

  14. 14

    提取容器ID时出错-源值不包含匹配器的logs_path'/ var / lib / docker / containers /'

  15. 15

    SQL CTE返回不按表达式分组

  16. 16

    ValueError长度不匹配预期轴包含2个元素,新值包含3个元素

  17. 17

    数字表的SQL CTE静态值快速,而表值慢

  18. 18

    使用vba修剪值时键入不匹配(错误13)

  19. 19

    PostgreSQL通过CTE优化包含Window函数的查询性能

  20. 20

    递归查询“ CTE”的列“ ProductNames”中的锚点与递归部分之间的类型不匹配

  21. 21

    从CTE插入

  22. 22

    解码字符串时哈希值不匹配

  23. 23

    不返回任何内容时,t-sql会强制显示一条消息。使用CTE和CASE

  24. 24

    包含性的RavenDB日期范围查询不包含预期的匹配日期值

  25. 25

    使用反射获取属性值时参数计数不匹配

  26. 26

    加入CTE时出错

  27. 27

    cte递归错误在锚点之间不匹配

  28. 28

    为什么递归 cte 不返回重复项?

  29. 29

    更新 cte 'result' 失败,因为它包含派生或常量字段

热门标签

归档