select
question_id as survey_log
from surveylog
group by question_id
order by sum(action='answer')/sum(action='show') desc
limit 1;
很有意思的解法,sum中可以带过滤条件
也可以用sum(if(action = ‘answer’, 1, 0))
with t as (
select question_id, count(question_id) as question_count
from surveylog
where action = 'show'
group by question_id
), t1 as (
select question_id, count(answer_id) as answer_count
from surveylog
where action = 'answer'
group by question_id
)
select t.question_id as survey_log
from t join t1
on t.question_id = t1.question_id
order by t1.answer_count / t.question_count desc
limit 1
一开始写的苦逼写法

本文探讨了一种有趣的SQL查询方法,通过sum函数结合过滤条件来高效统计答题比例。同时对比了不同的查询写法,包括使用if函数和子查询进行数据聚合,以找出回答最多的问题。这些技巧对于数据分析师和数据库管理员优化查询性能非常有用。
1105

被折叠的 条评论
为什么被折叠?



