У меня есть таблица в SQL Server 2005, которая выглядит как
1 | bob | joined
2 | bob | left
3 | john | joined
4 | steve | joined
5 | andy | joined
6 | kyle | joined
То, что я хочу, это дать кому-то возможность повысить активность 5 случайных пользователей (показывая их последнюю активность)
Пример: я хочу вернуть результаты 1, 3, 4, 5, 6 - или - 2, 3, 4, 5, 6 - но никогда - 1, 2, 3, 4, 5 (потому что 1 и 2 действия от одного и того же пользователя, и я не хочу, чтобы он появлялся дважды за счет другого уникального пользователя, у которого могла бы отображаться его активность)
Я пытаюсь что-то вроде SELECT TOP(5) FROM table ORDER BY NEWID()
, чтобы получить топ-5 и случайный аспект, но когда я пытаюсь включить UNIQUE или DISTINCT в любом месте (чтобы остановить получение обеих строк 1 и 2), я получаю ошибки SQL я понятия не имею, как прогрессировать