Топ [тег] ответчики за последние 30 дней для данного местоположения

Топ [тег] ответчики за последние 30 дней для данного местоположения

26.08.2015 02:35:34 Просмотров 52 Источник

Как бы вы собрали SQL-запрос для данных.stackexchange, который будет отображать наиболее активных пользователей (с точки зрения ответов) для тега в данном месте?

НАПР.. что-то похожее на топ-30, перечисленных здесь https://stackoverflow.com/tags/ruby-on-rails-3/topusers но место специфическое.

Итак, лучшие рубиновые ответчики за последние 30 дней в Берлине и т. д

Спасибо!

У вопроса есть решение - Посмотреть?

https://stackoverflow.com/questions/32225565/top-tag-answerers-in-the-last-30-days-for-a-given-location#comment52333808_32225565
Исправлено, теперь все должно быть в порядке

Ответы - Топ [тег] ответчики за последние 30 дней для данного местоположения / Top [TAG] Answerers in the Last 30 days for a given location

Является ответом!
jpw

26.08.2015 03:28:10

Итак, после просмотра схемы базы данных это запрос, который я придумал.

-- Top 10 Ruby Answerers in the last 30 days in Berlin based on score
select top 10
  u.displayname, 
  number_of_answers = count(*), 
  total_score = sum(p.score)
from
  users u                                 
join 
  posts p on p.owneruserid = u.id         -- joined to get answer posts
join 
  posts pp on p.parentid = pp.id          -- post parent is the question
join 
  posttags pt on pt.postid = pp.id        -- tags for post parent
join 
  tags t on t.id = pt.tagid               -- tags for tag name
where 
  t.tagname like '%ruby%'                 -- tags to filter for
 and                                      -- includes everything ruby inc. rails
  p.creationdate > (getdate()-30)         -- past 30 days
 and 
  u.location like '%Berlin%'              -- locations differ in format
group by 
  u.displayname
order by 
  3 desc;                                 -- order by total score for "best" answerers
                                          -- order by 2 (count) to get most active

Я не эксперт в схеме Data explorer, поэтому возможно, что запрос не совсем корректен, и есть некоторые предостережения: фильтр даты применяется к вопросу, а не к ответу, поэтому возможно, что есть пользователи с большим количеством ответов за последние 30 дней в целом, если они ответили на более старые вопросы, а также местоположение является действительно ненадежным полем, поскольку многие пользователи вообще не указали местоположение. Это, вероятно, как можно ближе, хотя.

Обозреватель данных не так уж сложно использовать-поэкспериментируйте немного с ним, и вы поймете, как связаны таблицы. Это хорошее упражнение :)

Вот запрос

Закрыть X