在一个SQL查询中合并两个COUNT

以色列罗德里格斯

我需要查询以显示new_customers X customer_cancellations

通过此查询,我可以按月获取new_customers:


从客户那里选择count(start_date),to_char(start_date,'MM')作为monthNumber,to_char(start_date,'YY')作为yearNumber ,其中start_date不为null的客户
按to_char(start_date,'MM'),to_char(start_date,' YY')
按yearNumber,monthNumber排序;

通过其他方式,我可以按月获得客户取消订单:

从客户中选择count(cancellation_date),to_char(cancellation_date,'MM')作为monthNumber,to_char(cancellation_date,'YY')作为yearNumber 
,其中cancel_date不为null的客户
按to_char(cancellation_date,'MM'),to_char(cancellation_date,' YY')
按yearNumber,monthNumber排序;

这两个查询都返回类似:

计数| monthnumber | yearnumber 
1 | 1 | 20 
7 | 2 | 20 
5 | 3 | 20

但我想要这样的事情:

customer_out_count | customer_in_count | monthnumber | yearnumber 
 0 | 1 | 1 | 20 
 0 | 7 | 2 | 20 
 1 | 0 | 3 | 20 
 0 | 1 | 4 | 20 
 5 | 7 | 5 | 20 
 1 | 5 | 6 | 20

我已经尝试过这个其他查询:


从客户那里选择“开始”作为类型,将count(开始日期)作为计数,将to_char(开始日期,“ MM”)作为monthNumber,将to_char(开始日期,“ YY”)作为yearNumber,从开始日期不为null的客户开始
按to_char(start_date,'MM '),to_char(开始日期,'YY')
联合
选择'cancellation'作为类型,count(cancellation_date)作为counta,to_char(cancellation_date,'MM')作为monthNumber,to_char(cancellation_date,'YY')作为yearNumber
从客户那里
cancel_date不是空值,
按to_char(cancellation_date,'MM'),to_char(cancellation_date,'YY')按yearNumber,monthNumber顺序分组;

结果是“确定”:

类型| newcount | monthnumber | yearnumber
 开始| 1 | 1 | 20
 取消| 1 | 1 | 20
 取消| 7 | 2 | 20
 开始| 3​​ | 3 | 20
 取消| 1 | 4 | 20
 开始| 7 | 5 | 20
 开始| 5 | 6 | 20

但是我将需要对代码进行一些操作才能实现所需的功能。

如何将这两个查询合并为一个?我正在使用postgreslq。

专线小巴

一个选项取消对行的透视,然后聚合。在Postgres中,您可以通过横向联接来表达这一点:

select
    sum(x.customer_in_count)  as customer_in_count,
    sum(x.customer_out_count) as customer_out_count
    to_char(x.dt, 'MM') as monthNumber, 
    to_char(x.dt, 'YY') as yearNumber
from customer c
cross join lateral (values
    (c.start_date, 1, 0), (c.cancellation_date, 0, 1)
) as x(dt, customer_in_count, customer_out_count)
where x.dt is not null
group by monthNumber, yearNumber
order by monthNumber, yearNumber

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在一个SQL查询中合并两个表中的两列,并合并COUNT和SUM值

来自分类Dev

在一个SQL查询中合并(合并)来自两个表的两列

来自分类Dev

在一个查询中合并两个文件

来自分类Dev

在一个请求中合并两个查询

来自分类Dev

在一个查询中合并两个单独的 SQL 查询

来自分类Dev

在一个SQL查询中合并两个表,并使日期值唯一

来自分类Dev

将两个 SQL 查询合并到一个整洁的表中

来自分类Dev

如何在SQL Server CE中将两个SQL SELECT查询合并到一个查询中?

来自分类Dev

在SQL中合并两个查询

来自分类Dev

SQL:将两个查询合并为一个查询

来自分类Dev

sql查询将两个查询合并为一个空行

来自分类Dev

合并两个 sql 查询,每个查询都有一个 with 子句

来自分类Dev

如何在PHP代码中将两个表中的两个查询合并为一个查询?

来自分类Dev

将两个查询合并为一个

来自分类Dev

如何将两个查询合并到一个子查询中

来自分类Dev

SQL查询将具有相同列名的两个表合并到一个表中

来自分类Dev

将两个SQL查询合并为一个

来自分类Dev

如何将两个SQL查询的结果合并为一个

来自分类Dev

将两个SQL查询结果合并为一个结果

来自分类Dev

如何将两个SQL查询合并为一个?

来自分类Dev

SQL:将两个计数查询合并为一个

来自分类Dev

我需要合并一个SQL选择查询的两个结果

来自分类Dev

将两个SQL查询合并为一个不重复的内容

来自分类Dev

我可以将这两个SQL查询合并为一个吗?

来自分类Dev

合并两个查询以获取SQL中的合并值

来自分类Dev

使用JAX-RS在一个对象中合并两个查询参数

来自分类Dev

合并两个SELECT查询并在一个表中显示数据?

来自分类Dev

PostgreSQL-在一个函数中合并两个查询

来自分类Dev

如何从一个表中合并两个不同查询的结果

Related 相关文章

  1. 1

    在一个SQL查询中合并两个表中的两列,并合并COUNT和SUM值

  2. 2

    在一个SQL查询中合并(合并)来自两个表的两列

  3. 3

    在一个查询中合并两个文件

  4. 4

    在一个请求中合并两个查询

  5. 5

    在一个查询中合并两个单独的 SQL 查询

  6. 6

    在一个SQL查询中合并两个表,并使日期值唯一

  7. 7

    将两个 SQL 查询合并到一个整洁的表中

  8. 8

    如何在SQL Server CE中将两个SQL SELECT查询合并到一个查询中?

  9. 9

    在SQL中合并两个查询

  10. 10

    SQL:将两个查询合并为一个查询

  11. 11

    sql查询将两个查询合并为一个空行

  12. 12

    合并两个 sql 查询,每个查询都有一个 with 子句

  13. 13

    如何在PHP代码中将两个表中的两个查询合并为一个查询?

  14. 14

    将两个查询合并为一个

  15. 15

    如何将两个查询合并到一个子查询中

  16. 16

    SQL查询将具有相同列名的两个表合并到一个表中

  17. 17

    将两个SQL查询合并为一个

  18. 18

    如何将两个SQL查询的结果合并为一个

  19. 19

    将两个SQL查询结果合并为一个结果

  20. 20

    如何将两个SQL查询合并为一个?

  21. 21

    SQL:将两个计数查询合并为一个

  22. 22

    我需要合并一个SQL选择查询的两个结果

  23. 23

    将两个SQL查询合并为一个不重复的内容

  24. 24

    我可以将这两个SQL查询合并为一个吗?

  25. 25

    合并两个查询以获取SQL中的合并值

  26. 26

    使用JAX-RS在一个对象中合并两个查询参数

  27. 27

    合并两个SELECT查询并在一个表中显示数据?

  28. 28

    PostgreSQL-在一个函数中合并两个查询

  29. 29

    如何从一个表中合并两个不同查询的结果

热门标签

归档