gpt4 book ai didi

sql - PostgreSQL:根据空值或非空值排除已连接的 ID

转载 作者:行者123 更新时间:2023-11-29 13:12:45 25 4
gpt4 key购买 nike

我正在使用一个数据库来查看用户帐户和跟踪行为。有时用户帐户是关联的(例如用户已婚)。

对于我正在进行的特定分析,我想避免重复计算已连接的用户,因为这会夸大我的转化次数。下面是一个示例数据集。

如何在不重复计算已连接用户的情况下计算具有非空日期的 ID 数量?如您所见,有时 connected_id 是 3 个 id 的链。

|   ID   |   Connected_ID    |  DATE_A      |
| 1 | 10 | 2018-09-15 |
| 2 | | 2018-10-02 |
| 3 | 5 | 2018-06-01 |
| 4 | | 2018-06-01 |
| 5 | 7 | |
| 6 | | 2018-07-10 |
| 7 | 5 | 2018-06-01 |
| 8 | | |
| 9 | | 2018-05-05 |
| 10 | 1 | 2018-09-15 |

从这个示例中,我想得到以下结果:

|  DATE_A   |   COUNT_IDS  |
| 2018-05-05| 1 |
| 2018-06-01| 2 |
| 2018-07-10| 1 |
| 2018-09-15| 1 |
| 2018-10-02| 1 |

通常我会使用如下 SQL 查询来完成此操作:

Select DATE_A, count(*) FROM table_1 GROUP BY 1

这显然不会考虑连接的帐户,并且会夸大我的计数。

感谢您的帮助!

最佳答案

这是我使用 UNION 连接两个查询的尝试

SELECT Date_A, COUNT(id_count) 
FROM (SELECT Date_A, 1 as id_count
FROM test
WHERE DATE_A IS NOT NULL AND connected_id IS NULL
UNION
SELECT Date_A, 2 as id_count
FROM test
WHERE DATE_A IS NOT NULL AND connected_id IS NOT NULL) as uni
GROUP BY Date_A

关于sql - PostgreSQL:根据空值或非空值排除已连接的 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52876709/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com