【发布时间】:2021-11-19 22:33:24
【问题描述】:
我有一张如下表
| date_partition| app_id | location_id | a | b | c | d |app_type | ru_today| ru_this_week| ru_this_month |mau |execution_count|
| 9/20/21 | 17ccc103 | 56a7d682 | TRUE | TRUE | FALSE | FALSE | WEBHOOK | TRUE | TRUE | TRUE | TRUE | 402 |
| 9/20/21 | 17ccc103 | 56a7d682 | TRUE | TRUE | FALSE | FALSE | WEBHOOK | TRUE | TRUE | TRUE | FALSE | 402 |
| 9/20/21 | 9056ac49 | f4494101 | TRUE | TRUE | FALSE | FALSE | WEBHOOK | TRUE | TRUE | TRUE | TRUE | 291 |
| 9/20/21 | 9056ac49 | f4494101 | TRUE | TRUE | FALSE | FALSE | WEBHOOK | TRUE | TRUE | TRUE | FALSE | 291 |
| 9/20/21 | cf98b87d | 59a8f889 | TRUE | TRUE | FALSE | FALSE | WEBHOOK | FALSE | FALSE | TRUE | TRUE | 1 |
| 9/20/21 | cf98b87d | 59a8f889 | TRUE | TRUE | FALSE | FALSE | WEBHOOK | TRUE | TRUE | TRUE | TRUE | 1 |
| 9/20/21 | cf98b87d | 59a8f889 | TRUE | TRUE | FALSE | FALSE | WEBHOOK | TRUE | TRUE | TRUE | FALSE | 1 |
我想获得每个项目和每个标志的唯一计数(a、b 和 c 为真)。
例如
9056ac49-5c29-4366-9eb2-64576cb2a9af | f4494101 | 291 | 291 | 291
cf98b87d-3605-42a2-85b9-2993956fe927 | 59a8f889 | 1 | 1 | 1
问题是当我进行 Group BY 时,我有双重计数(因为 2 行的值为 TRUE,但我希望它们只计算一次)。
我如何只为每个获得一行?不确定我是否可以在这里使用WINDOW BY
这里我只需要计算一次(即只有 402)。如果我进行条件计数,我仍然会计数两次(804)
【问题讨论】:
-
能否以文本形式提供数据和所需的输出?
-
我更新了。完成:)
标签: mysql sql window-functions amazon-athena presto