首页 > 解决方案 > 将多个简单查询转换为一个?

问题描述

我是 SQL 新手,所以必须像我 5 岁一样解释事情。我试图弄清楚有多少人执行了“点击了解更多”事件,然后继续执行“设置试用状态”事件。我正在使用 Postgres,所以AND payload->>'status' = true我遗漏了一个额外的内容来简化它。本质上,我需要将以下伪查询转换为功能单一的查询。

SELECT DISTINCT booking_id
FROM venue_events
WHERE name = 'clicked learn more'`;

SELECT count(*)
FROM venue_events
WHERE booking = booking_id AND name = 'set trial status' AND payload->>'status' = true;

我怎样才能把它变成一个基本上单一的 SQL 查询,第二个使用第一个中的 booking_ids

下面是表格中的数据。

行布局

标签: sqldatabasepostgresql

解决方案


SELECT count(*)
FROM venue_events
WHERE name = 'set trial status' 
AND booking_id IN
(
    SELECT DISTINCT booking_id
    FROM venue_events
    WHERE name = 'clicked learn more'
)
AND payload->>'status' = true;

推荐阅读