Conditions: ph.post_history_type_id = 3 ph.text IS NOT NULL
🔍Filter
Conditions: p.post_type_id = 1 p.owner_user_id IS NOT NULL
🔗Join
Conditions: p.id = ph.post_id
⚙️Expression
Conditions: p.id AS question_id SPLIT(ph.text, ',') AS tags_array
question_tags
question_id
owner_user_id
creation_date
score
tags_array
🔍Filter
Conditions: score > 5
📈Aggregate
Conditions: GROUP BY owner_user_id COUNT(question_id) AS high_score_questions HAVING COUNT(question_id) >= 5
high_quality_askers
owner_user_id
high_score_questions
🔗Join
Conditions: qt.owner_user_id = hqa.owner_user_id
🔗Join
Conditions: qt.owner_user_id = u.id
⚡Cross Join
Conditions: UNNEST(qt.tags_array) AS tag
⚙️Aggregate
Conditions: qt.owner_user_id u.display_name EXTRACT(YEAR FROM qt.creation_date) AS year TRIM(tag) AS tag_name COUNT(qt.question_id) AS questions_in_tag_year GROUP BY qt.owner_user_id, u.display_name, year, tag_name
user_tag_year_stats
owner_user_id
display_name
year
tag_name
questions_in_tag_year
⚙️Expression
Conditions: ROW_NUMBER() OVER(PARTITION BY owner_user_id, year ORDER BY questions_in_tag_year DESC) AS rn
🔍Filter
Conditions: rn <= 3
⚙️Expression
Conditions: ORDER BY display_name, year DESC, questions_in_tag_year DESC