以下是查询具有最高回答率的问题的SQL查询:

SELECT question_id, COUNT(*) AS total_count,
       COUNT(CASE WHEN action = 'answer' THEN 1 END) AS answer_count,
       COUNT(CASE WHEN action = 'answer' AND answer_id IS NOT NULL THEN 1 END) AS answered_count,
       COUNT(CASE WHEN action = 'show' OR action = 'skip' THEN 1 END) AS skipped_count,
       COUNT(CASE WHEN action = 'answer' THEN 1 END) / COUNT(*) AS answer_rate
FROM survey_log
GROUP BY question_id
ORDER BY answer_rate DESC
LIMIT 1;

该查询使用了GROUP BY子句来按question_id分组,并使用COUNT函数计算总回答数,回答数和显示/跳过数。然后,使用CASE语句将不同的action值进行计数,并计算回答率。最后,使用ORDER BY和LIMIT子句找到回答率最高的问题

说明 从 survey_log 表中获得回答率最高的问题survey_log 表包含这些列:id action question_id answer_id q_num timestamp。id 表示用户 id;action 有以下几种值:showanswerskip;当 action 值为 answer 时 answer_id 非空而 action 值为 show 或者 skip 时 answer

原文地址: https://www.cveoy.top/t/topic/iH75 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录