gpt4 book ai didi

sql - 如何计算 Hive 表中人员之间一致的重叠百分比

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

假设我有一项调查,每个问题有 4 个可能的答案,并且受访者至少可以选择一个答案(允许多个答案)。我想计算每个问题每个答案,有多少人选择了该答案。例如,如果我有配置单元表:

question_id | answer_id | person_id
-------------------------------------
1 | A | 1
1 | B | 1
1 | C | 1
1 | D | 1
1 | A | 2
1 | B | 2
1 | C | 2
2 | D | 1
2 | A | 1

那么结果表将是:

question_id | answer_id | Percentage
-------------------------------------
1 | A | 100
1 | B | 100
1 | C | 100
1 | D | 50
2 | D | 50
2 | A | 50

对于问题 1,两人都选择了 A、B、C,三者都给出 100%,但其中一个人也选择了 D,给出了 50%。对于问题 2,一个人选 D,一个人选 A,分别给 50% 和 50%。

我真的被困住了,我无法在网上找到任何可以实现我正在寻找的东西。任何帮助都会很棒!

最佳答案

嗯。 。 。如果我理解正确的话,您需要选择一个特定问题/答案组合的人数除以选择该问题的人数。如果是的话,我认为

select qa.*, qa.num_persons * 100.0 / q.num_persons
from (select question_id, answer_id, count(*) as num_persons
from t
group by question_id, answer_id
) qa join
(select question_id, count(distinct person_id) as num_persons
from t
group by question_id
) q
on qa.question_id = q.question_id;

关于sql - 如何计算 Hive 表中人员之间一致的重叠百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62724406/

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