Пожалуйста, помогите мне с проблемой, с которой я столкнулся во время работы. Я работаю с SQL Server, и я знаю, что с помощью курсоров я мог бы добиться этого, но я почти уверен, что есть способ сделать это с помощью простого запроса в SQL, но мой мозг не хочет включи. Позвольте мне объяснить мою проблему на примере.
У меня есть такая таблица:
postedby | date | comment |
1 | 01.01.2012 | sth sth |
2 | 01.01.2012 | sth sth |
3 | 01.01.2012 | sth sth |
2 | 01.01.2012 | sth sth |
3 | 02.01.2012 | sth sth |
2 | 03.01.2012 | sth sth |
2 | 05.01.2012 | sth sth |
Что я хочу сделать, так это получить все сообщения, кроме одной для каждого пользователя (в колонке), дата должна быть самой последней и, конечно, показывать комментарий.
Я пытался сделать:
Select distinct postedby, date, comment
но не сработало, так как я понимаю разные работы для каждого столбца, поэтому, если в 2-х строках размещено одно и то же, но комментарий отличается, он будет обрабатывать его как различающийся
Я пытался сделать:
Select postedby,date,comment group by postedby
(не беспокойтесь о предложении from)
давая мне ошибку или агрегацию, поэтому я попытался
select postedby,min(date) group by postedby
- конечно, работает, но я не могу получить комментарий.
Должен ли я каким-то образом использовать агрегированные запросы? Или чего мне не хватает?