почему использование Min или Max даст в этом случае другое количество результатов? - PullRequest
1 голос
/ 22 ноября 2011

Я пытаюсь выбрать последний комментарий для каждой компании, в которой есть хотя бы 1 комментарий. В отдельном запросе я пытаюсь выбрать самый старый комментарий для каждой компании, в которой есть хотя бы 1 комментарий.

Эти запросы ниже идентичны, за исключением того, что я использую Max вместо Min во втором. Тем не менее, они дают различное количество результатов (1180 результатов для MIN и 673 для MAX). Очень смущенный??? Может ли кто-нибудь помочь

SELECT comment.bis_id, comment.comment, comment.date
FROM comment
GROUP BY comment.bis_id
HAVING comment.date = MIN(comment.date)


SELECT comment.bis_id, comment.comment, comment.date
FROM comment
GROUP BY comment.bis_id
HAVING comment.date = MAX(comment.date)

1 Ответ

1 голос
/ 22 ноября 2011

В этом случае вы должны использовать эти запросы -

SELECT c1.* FROM comment c1
  JOIN (SELECT bis_id, MIN(date) date FROM comment GROUP BY bis_id) c2
ON c1.bis_id = c2.bis_id AND c1.date = c2.date;

SELECT c1.* FROM comment c1
  JOIN (SELECT bis_id, MAX(date) date FROM comment GROUP BY bis_id) c2
ON c1.bis_id = c2.bis_id AND c1.date = c2.date;
...