Раненый зомби искатель, или: как найти почти мертв нежить?


На зомби на своем пути, чтобы поесть в нашей статистике. К счастью, у нас есть способ избавиться от них: наши голоса. Тем не менее, мы должны найти их первыми. В /неотвеченных разделе является слишком большим и содержит в себе много сильных врагов, где надо писать комментарий первой. Но клиент StackExchange данных чуют почти мертвых зомби от мили.

Для этого нам нужен подобающий запрос. Вот что я пробовал:

SELECT 
  q.Id AS [Post Link],
  MAX(a.Score) AS [Best answer score]
FROM 
  Posts q
JOIN 
  Posts a ON a.ParentId = q.Id
WHERE 
      q.PostTypeId = 1  
  AND q.AnswerCount > 0
  AND q.AcceptedAnswerId IS NULL
  AND a.PostTypeId = 2
GROUP BY 
  q.Id
HAVING 
 MAX(a.Score) = 0

Вы можете запустить и найти запрос на седе.

Он ищет вопросы (q.PostTypeId = 1), которые имеют по крайней мере один ответ, не принято отвечать, и максимальное количество баллов всех его ответов 0. Затем полученный список могут быть проверены для быстрого удаления зомби.

Что-то совершенно неправильно? Или может это оружие поможет нам в нашей борьбе против нежити?



1252
13
задан 19 марта 2018 в 06:03 Источник Поделиться
Комментарии
1 ответ

Не совершенно неправильно, но

q.PostTypeId = 1 

и

AND a.PostTypeId = 2

здесь излишни. Только типы записей с ненулевым значением в ParentId приведены ответы (см. схемы базы данных документации), и их значения идентификаторов вопросы, поэтому присоединиться к уже заботится об этом.

Я слегка недопонял цель запроса, во-первых, потому что вопросы с ответами отрицательные результаты, как этот же появляются на /без ответа. Но вы хотите просмотреть ответы чтобы увидеть, если они достойны забавным. Затем, вы могли бы также бросить второй столбец (MAX(a.Score) AS [Best answer score]) потому что вы знаете , что это собирается быть ноль.

11
ответ дан 19 марта 2018 в 06:03 Источник Поделиться