Как отсортировать по голосам ответы, содержащие хотя бы 1 картинку?
Мне всегда нравился тег [visualization] в Math SE и сообщения вроде « Визуально ошеломляющие математические концепции», которые легко объяснить . Некоторые люди лучше всего учатся визуально. Другие SE, такие как Math Educators и Chemistry, не имеют этого тега, но, несомненно, они оба используют изображения.
Итак, как я могу увидеть список ответов, отсортированных по голосам, которые содержат хотя бы одну картинку?
Можно ли отсортировать по второму критерию: количеству текста в ответе? Тогда я могу увидеть, какие посты с хотя бы одним изображением содержат меньше всего сопроводительного текста.
Ответы
Вот еще один запрос SEDE .
Я придерживаюсь немного другого подхода. Вместо поиска в html (который находится в поле Posts.body) я использую фактическую уценку в качестве источника. Это более сложно (и работает хуже), потому что таблица PostHistory содержит все версии сообщения, а не только последнюю. Так что я немного жонглирую, чтобы найти последнюю версию. В этом тексте я использую ту же технику, которую использовал Глорфиндель: утверждение Like, но я ищу ![ ][ ]
уценку. Вместо длины текста я добавил приблизительное количество слов.
Чтобы SEDE был доволен, я составляю ТОП-1000.
select top 1000
a.id as [Post Link]
, a.creationdate
, a.score
, len(text)-len(replace(text,' ','')) [~ word count]
from posts a
inner join posts q on q.id = a.parentid
inner join (
select postid,
text
from posthistory phi
where id = (select max(id)
from posthistory ph
where ph.postid = phi.postid
and ph.posthistorytypeid in (2,5,8))
) md on md.postid = a.id
where a.posttypeid = 2 -- answers
and (
md.text like '%![[]%][[]%]%'
--or
--md.text like '%%' or
--md.text like '%<img src="%"%'
)
order by 4 desc
Вот как выглядит результат:

Имейте в виду, что SEDE обновляется раз в неделю в воскресенье.
Воспользуйтесь прекрасным учебником SEDE, написанным замечательной Моникой Челлио .
Скажите «Привет» в чате SEDE .
Наилучшие результаты вы, вероятно, получите с SEDE, поскольку он должен учитывать ваш второй критерий (сортировка по длине сообщения).
Но для первой части вы можете использовать поиск: [visualization] url:"*.jpg*" is:a
найти ответы в теге визуализации, в котором есть изображение, а затем отсортировать результаты по голосам.
Как сказал Мартин в комментариях под вашим вопросом, чтобы найти как можно больше ответов, вы можете поискать несколько URL-адресов, содержащих imgur, png, jpg и gif.
Вот запрос SEDE, в котором перечислены все ответы хотя бы с одним изображением. Выяснить, сколько текста в ответе, слишком сложно (по крайней мере, для меня), поэтому я остановился на общей длине ответа, которая должна дать хорошее представление.
Обратите внимание, что SEDE обновляется только раз в неделю, в воскресенье утром, и в настоящее время у него есть некоторые проблемы с доступностью . Кроме того, подобный поиск в полной таблице сообщений, вероятно, не работает на крупных сайтах, таких как Mathematics; он действительно работает для преподавателей химии и математики. Возможно, вам потребуется разветвить запрос, например, чтобы ограничить поиск определенными тегами, минимальным счетом или датой публикации. Проверьте удивительный учебник , если вы новичок в SEDE или SQL в целом.