-1

让我们以具有以下结构的 PostgreSQL 数据库为例:

4 (从上到下的所有关系都是OneToMany

对于具有给定campaign_id的“ Brandlift ”,我们如何检索:

对于每个问题回答的数量* 按品牌响应者.segment

*ie具有匹配品牌 id的anwer_content行数

这是给定此转储的所需输出的示例 2

基本上,品牌只是一个可能的答案/选择选项,对于一个问题

您可以将 Brandlift 视为多项选择 q,它对每个问题都有相同的选择选项

4

1 回答 1

1

我使用了您的最新数据,这是查询。

SELECT
    BQ.id as question_id,
    BR.segment_id,
    BB.name AS Brand_Name,
    COUNT(BAC.brand_id) AS Answer_Count
FROM
    PUBLIC.Brandlift B
    LEFT JOIN brandlift_question BQ ON B.campaign_id = BQ.campaign_id
    LEFT JOIN brandlift_respondent BR ON B.campaign_id = br.campaign_id
    LEFT JOIN brandlift_segment BS ON BR.segment_id = BS.id
    LEFT JOIN brandlift_answer BA ON BQ.id = BA.question_id AND BR.id = BA.respondent_id
    LEFT JOIN brandlift_brand BB ON B.campaign_id = BB.campaign_id
    LEFT JOIN brandlift_answer_content BAC ON BA.id = BAC.answer_id AND BB.id = BAC.brand_id
WHERE
    B.campaign_id = '8d8c79ce-188c-4f5e-bd72-edb854faf34c'
GROUP BY
    BQ.id,
    BB.name,
    BR.segment_id,
    BS.name

你的结果是 在此处输入图像描述

于 2021-01-29T15:31:36.300 回答