【问题标题】:How to count the number of zeros in the result and append it as a column?如何计算结果中零的数量并将其附加为列?
【发布时间】:2020-09-02 22:03:46
【问题描述】:

我有一个大查询,它有不同的结果数据。

是否可以添加一个 COUNT 列来计算计数中零的总数并显示为一列? 我的大查询的结果像

col_12_0_|ppi_event_id|col_1_0||col_13_0_|col_14_0_||col_17_0| 
---------|------------|-------||---------|---------||--------| 
    27981|        3249| 149056||ongoing  |true     ||       5| 
    27989|        3249| 149090||ongoing  |false    ||       4| 
    27981|        3249| 149052||ongoing  |true     ||       3| 
    27989|        3249| 149061||ongoing  |false    ||       2| 
    27981|        3249| 149096||ongoing  |true     ||       1| 
    27989|        3249| 149011||ongoing  |false    ||       0| 
    27981|        3247| 149041||ongoing  |true     ||       1| 
    27989|        3247| 149068||ongoing  |false    ||       0| 
    27981|        3248| 149047||ongoing  |true     ||       2| 
    27989|        3248| 149000||ongoing  |false    ||       1|
    27989|        3248| 149089||ongoing  |false    ||       0| 

预期结果: 在col_17_0 中添加具有0 行数的count 列。

如果我有 3 条记录为 0 ,那么计数列应在每列前面显示 3 。

col_12_0_|ppi_event_id|col_1_0||col_13_0_|col_14_0_|Count |col_17_0| 
---------|------------|-------||---------|---------|------|--------| 
    27981|        3249| 149056||ongoing  |true     |3     |       5| 
    27989|        3249| 149060||ongoing  |false    |3     |       4| 
    27981|        3249| 149056||ongoing  |true     |3     |       3| 
    27989|        3249| 149060||ongoing  |false    |3     |       2| 
    27981|        3249| 149056||ongoing  |true     |3     |       1| 
    27989|        3249| 149060||ongoing  |false    |3     |       0| 
    27981|        3247| 149056||ongoing  |true     |3     |       1| 
    27989|        3247| 149060||ongoing  |false    |3     |       0| 
    27981|        3248| 149056||ongoing  |true     |3     |       2| 
    27989|        3248| 149060||ongoing  |false    |3     |       1|
    27989|        3248| 149060||ongoing  |false    |3     |       0| 

提前致谢。

【问题讨论】:

    标签: postgresql


    【解决方案1】:

    您可以使用过滤窗口函数:

    count(*) filter (where col_17_0 = 0) over ()
    

    【讨论】:

      猜你喜欢
      • 2020-06-05
      • 2020-09-13
      • 2019-09-17
      • 1970-01-01
      • 2023-01-26
      • 2020-08-23
      • 1970-01-01
      • 2013-10-13
      • 2020-03-22
      相关资源
      最近更新 更多