如何获取过去x周每种类型的数据?

安迪

我在下面的查询中为我提供了三列数据- typeamount以及total上周使用week_number列的数据。

select type,
case
WHEN (type = 'PROC1' AND contractdomicilecode = 'UIT') THEN 450
WHEN (type = 'PROC1' AND contractdomicilecode = 'KJH') THEN 900
WHEN (type = 'PROC2' AND contractdomicilecode = 'LOP') THEN 8840
WHEN (type = 'PROC2' AND contractdomicilecode = 'AWE') THEN 1490
WHEN (type = 'PROC3' AND contractdomicilecode = 'MNH') THEN 1600
WHEN (type = 'PROC3' AND contractdomicilecode = 'LKP') THEN 1900
END as amount,
total
from xyz.orders pa
join
(select clientid as clientid, max(version) as version
from xyz.orders where consumerid IN (select distinct entity_id from abc.items
where week_number = extract(week from current_date) - 1
and item_type like '%Ionize - Data%' )
and createdfor ='BLOCK'
and holder='RELAY_FUTURES'
group by clientid) pb on
pa.clientid = pb.clientid and pa.version = pb.version;

下面是我上面查询时返回的输出:

type    amount      total
---------------------------
PROC1    450         1768
PROC1    900         123
PROC1    450         456
PROC2    8840        99897
PROC2    1490        2223
PROC2    8840        9876
PROC3    1900        23456
PROC3    1600        12498
PROC3    1600        28756

问题陈述

现在,我试图找出一种方法来获取过去6周(不包括当前周)的数据。基本上,我想在过去6周内针对每种类型获取amounttotal如下所示。

 week   type    amount      total
----------------------------------
  46    PROC1    450         1768
  46    PROC1    900         123
  46    PROC1    450         456
  46    PROC2    8840        99897
  46    PROC2    1490        2223
  46    PROC2    8840        9876
  46    PROC3    1900        23456
  46    PROC3    1600        12498
  46    PROC3    1600        28756
  45    PROC1    450         1768
  45    PROC1    900         123
  45    PROC1    450         456
  45    PROC2    8840        99897
  45    PROC2    1490        2223
  45    PROC2    8840        9876
  45    PROC3    1900        23456
  45    PROC3    1600        12498
  45    PROC3    1600        28756
  44    PROC1    450         1768
  44    PROC1    900         123
  44    PROC1    450         456
  44    PROC2    8840        99897
  44    PROC2    1490        2223
  44    PROC2    8840        9876
  44    PROC3    1900        23456
  44    PROC3    1600        12498
  44    PROC3    1600        28756
  43    PROC1    450         1768
  43    PROC1    900         123
  43    PROC1    450         456
  43    PROC2    8840        99897
  43    PROC2    1490        2223
  43    PROC2    8840        9876
  43    PROC3    1900        23456
  43    PROC3    1600        12498
  43    PROC3    1600        28756
  42    PROC1    450         1768
  42    PROC1    900         123
  42    PROC1    450         456
  42    PROC2    8840        99897
  42    PROC2    1490        2223
  42    PROC2    8840        9876
  42    PROC3    1900        23456
  42    PROC3    1600        12498
  42    PROC3    1600        28756
  41    PROC1    450         1768
  41    PROC1    900         123
  41    PROC1    450         456
  41    PROC2    8840        99897
  41    PROC2    1490        2223
  41    PROC2    8840        9876
  41    PROC3    1900        23456
  41    PROC3    1600        12498
  41    PROC3    1600        28756

这有可能吗?

蚀刻_45

select如果表中current_date存在该列,则可以尝试将以下代码添加到查询中,紧接在第1行中的第一之后xyz.orders

extract(week from current_date) as week,

为了获得过去的星期数(在您的情况下为6周),将在以下行之后使用过滤器from xyz.orders pa

where datediff(week, extract(week, current_date)-6, extract(week, current_date)+1) = 6

过滤器可能需要稍作调整,但是当您看到输出时,您应该能够找到需要调整的内容。

DATEDIFFMS docs上面的过滤器中使用函数中的一些详细信息可能是有用的参考。

docs.microsoft.com

经过上述更改,以下是有关从原始代码添加的详细信息的更新查询和注释。

select
    extract(week from current_date) as week, -- added code
    type,
    case
        WHEN (type = 'PROC1' AND contractdomicilecode = 'UIT') THEN 450
        WHEN (type = 'PROC1' AND contractdomicilecode = 'KJH') THEN 900
        WHEN (type = 'PROC2' AND contractdomicilecode = 'LOP') THEN 8840
        WHEN (type = 'PROC2' AND contractdomicilecode = 'AWE') THEN 1490
        WHEN (type = 'PROC3' AND contractdomicilecode = 'MNH') THEN 1600
        WHEN (type = 'PROC3' AND contractdomicilecode = 'LKP') THEN 1900
    END as amount,
    total
    from xyz.orders pa
    where datediff(week, extract(week, current_date)-6, extract(week, current_date)+1) = 6 -- added code
    join
    (select clientid as clientid, max(version) as version
        from xyz.orders where consumerid IN (select distinct entity_id from abc.items
        where week_number = extract(week from current_date) - 1
        and item_type like '%Ionize - Data%' )
        and createdfor ='BLOCK'
        and holder='RELAY_FUTURES'
        group by clientid) pb on
        pa.clientid = pb.clientid and pa.version = pb.version;

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何获取每个日期的每种类型的最大ID

来自分类Dev

获取过去 x 周的记录

来自分类Dev

Mongooses - 如何获取过去两周的数据变化

来自分类Dev

如何转换数组中的每种类型?

来自分类Dev

如何在redshift中动态提取过去x周的数据?

来自分类Dev

如何获取e剂中每种类型的最小值和最大值

来自分类Dev

如何在/ proc / filesystems中获取有关每种类型的文件系统的信息

来自分类Dev

MySQL查询以获取每种类型的有限行

来自分类Dev

MySQL查询以获取每种类型的有限行

来自分类Dev

mysql join:获取每种类型计数的零件

来自分类Dev

获取每种类型记录的最大虚拟字段

来自分类Dev

在Neo4j中获取每种类型的节点属性和每种类型的关系属性

来自分类Dev

如何获取每种注册类型的数量?

来自分类Dev

如何获取过去1周的记录和总数

来自分类Dev

如何使用 moment 获取过去 3 周的日期范围?

来自分类Dev

从查找表中获取每种类型和每个日期的最大ID

来自分类Dev

以2分钟为间隔获取每种类型的总数

来自分类Dev

在C#DBML中获取具有最新/更大日期的每种类型的记录

来自分类Dev

为每种类型编译时间typeid

来自分类Dev

通用接口与每种类型的接口

来自分类Dev

如何为每种类型只返回一条记录?

来自分类Dev

如何使用实体框架解决“不支持每种类型的多个对象集”问题

来自分类Dev

如何使用时间戳列获取过去X天的数据?

来自分类Dev

如何在Elasticsearch中获取每种索引类型的计数?

来自分类Dev

如何查询以获取每种Freebase类型的实例计数列表?

来自分类Dev

如何从python中的输入检查每种数据类型?

来自分类Dev

查询以在 JPQL 中获取过去 X 个月的数据

来自分类Dev

mysql选择每种类型的最后一行

来自分类Dev

每种类型客户的销售百分比

Related 相关文章

  1. 1

    如何获取每个日期的每种类型的最大ID

  2. 2

    获取过去 x 周的记录

  3. 3

    Mongooses - 如何获取过去两周的数据变化

  4. 4

    如何转换数组中的每种类型?

  5. 5

    如何在redshift中动态提取过去x周的数据?

  6. 6

    如何获取e剂中每种类型的最小值和最大值

  7. 7

    如何在/ proc / filesystems中获取有关每种类型的文件系统的信息

  8. 8

    MySQL查询以获取每种类型的有限行

  9. 9

    MySQL查询以获取每种类型的有限行

  10. 10

    mysql join:获取每种类型计数的零件

  11. 11

    获取每种类型记录的最大虚拟字段

  12. 12

    在Neo4j中获取每种类型的节点属性和每种类型的关系属性

  13. 13

    如何获取每种注册类型的数量?

  14. 14

    如何获取过去1周的记录和总数

  15. 15

    如何使用 moment 获取过去 3 周的日期范围?

  16. 16

    从查找表中获取每种类型和每个日期的最大ID

  17. 17

    以2分钟为间隔获取每种类型的总数

  18. 18

    在C#DBML中获取具有最新/更大日期的每种类型的记录

  19. 19

    为每种类型编译时间typeid

  20. 20

    通用接口与每种类型的接口

  21. 21

    如何为每种类型只返回一条记录?

  22. 22

    如何使用实体框架解决“不支持每种类型的多个对象集”问题

  23. 23

    如何使用时间戳列获取过去X天的数据?

  24. 24

    如何在Elasticsearch中获取每种索引类型的计数?

  25. 25

    如何查询以获取每种Freebase类型的实例计数列表?

  26. 26

    如何从python中的输入检查每种数据类型?

  27. 27

    查询以在 JPQL 中获取过去 X 个月的数据

  28. 28

    mysql选择每种类型的最后一行

  29. 29

    每种类型客户的销售百分比

热门标签

归档