Запрос для наиболее быстро растущих тегов в обозревателе данных?

Запрос для наиболее быстро растущих тегов в обозревателе данных?

15.02.2011 11:40:29 Просмотров 44 Источник

Я бы хотел сравнить популярность тегов между двумя месяцами, упорядоченными по самым большим изменениям.

Я разработал, как подсчитать количество тегов в месяц, но не как их сравнить. Вот что у меня есть до сих пор:

select TOP 10
    tags.tagname, count(*) AS tagcount
from Posts
    INNER JOIN PostTags ON PostTags.PostId = Posts.id
    INNER JOIN Tags     ON Tags.id         = PostTags.TagId
where
    datepart(year,  Posts.CreationDate) = 2011 and
    datepart(month, Posts.CreationDate) = 1
Group by tags.tagname
Order by tagcount DESC

http://data.stackexchange.com/stackoverflow/qe/924/query-count-tags-from-daterange
(Примечание: Вы можете клонировать, редактировать на месте и запускать его)

Я новичок в SQL. Кажется, мне просто нужно создать второй запрос за предыдущий месяц (декабрь 2010), а затем объединить эти два запроса со столбцом, который является prevMonth.count - nextMonth.countи порядок по этому столбцу (получение только верхнего X, поэтому это не займет вечность).

Но я не могу решить, как объединить два запроса таким образом - я думаю, что вы должны быть в состоянии вложить их, но я не могу заставить его работать. Другой способ-создать временную таблицу - это кажется мне неэффективным, но, может быть, это правильный путь?

Большое спасибо за любую помощь!


Кстати: что я хотел бы сделать дальше:

  1. После этого я хотел бы найти скорость роста (а не только абсолютное изменение чисел). Это просто (new-old)/old. Вроде скорость, но нормализованная.

  2. Затем, теги, скорость роста которых увеличивается больше всего-т. е. которые имеют экспоненциальный рост. Для этого потребуется 3 месяца: рассчитайте скорость изменения между месяцами 1 и 2, а также между месяцами 2 и 3. Разница между ними-это скорость изменения скорости изменения. Это как ускорение.

[ Это является сигналом для роста новых технологий, которые часто начинаются с малого в очень специфическом использовании. Люди в этой маленькой области говорят друг с другом, и хорошие идеи передаются в цепной реакции: один человек говорит Два, каждый говорит еще два и так далее. Эта ниша может быть полностью преобразована через некоторое время, и, возможно, она распространится на другую, аналогичную нишу. См. "видя, что дальше", парень дилеммы новатора. ]


Вот более поздняя версия, используя ответ JNK: http://data.stackexchange.com/stackoverflow/q/92869/query-tags-with-highest-increase-in-growth-over-3-months

И... самый быстрорастущий тег-это... facebook-с#-СДК. Не знаю, насколько это полезно, но это интересный способ просмотреть так.

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

Ответы - Запрос для наиболее быстро растущих тегов в обозревателе данных? / Query for fastest growing tags in data explorer?

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

15.02.2011 05:11:21

Используйте # Временные Таблицы:

-- QUERY: count tags from daterange
-- TODO: compare from two different dateranges...

select TOP 10
    tags.tagname, count(*) AS tagcount
INTO #TagCountTemp1
from Posts
    INNER JOIN PostTags ON PostTags.PostId = Posts.id
    INNER JOIN Tags     ON Tags.id         = PostTags.TagId 
where
    datepart(year,  Posts.CreationDate) = 2011 and
    datepart(month, Posts.CreationDate) = 1
Group by tags.tagname
Order by tagcount DESC

select TOP 10
    tags.tagname, count(*) AS tagcount
INTO #TagCountTemp2
from Posts
    INNER JOIN PostTags ON PostTags.PostId = Posts.id
    INNER JOIN Tags     ON Tags.id         = PostTags.TagId 
where
    datepart(year,  Posts.CreationDate) = 2010 and
    datepart(month, Posts.CreationDate) = 12
Group by tags.tagname
Order by tagcount DESC

SELECT TOP 10
t2.tagname, t2.tagcount as 'Month 1', t1.tagcount as 'Month 2', (t1.tagcount-t2.tagcount) as 'Increase'
FROM #TagCountTemp1 as t1
LEFT JOIN #TagCountTemp2 as t2
  ON T1.tagname = t2.tagname
ORDER BY (t1.tagcount-t2.tagcount) desc​​​​​​​​​​​​​​​

​Это сработало отлично для меня!

https://stackoverflow.com/questions/5001393/query-for-fastest-growing-tags-in-data-explorer/5004684#comment5594705_5004684
Спасибо! Я поменял местами 1 и 2 (я вижу, что вы сделали это в названии столбца), удалил TOP 10из первых двух вариантов и т. д. и т. д.-И добавил, что сделал это за 3 месяца: data.stackexchange.com/stackoverflow/q/92869/…
Закрыть X