Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Проблема с запросом  [new]
VIT2708
Member [заблокирован]

Откуда: Киев
Сообщений: 1387
Есть таблица + данные(пример)
id | title | counter | idUser | ....
1 тест1 1 5
2 запись 1 7
3 еще что то 1 2
4 тест1 2 4
5 строка 1 6
6 еще запись 1 10
.....

Вот пример запроса

select [id], [title], [text], [dateStart], [dateEnd], (select count(distinct idUser) from [TableChild] where [idTableMain]=TableMain.id) as UsersCount
from [TableMain]


Так вот этот запрос выводит все строки из таблицы как они есть с повторами.

А мне необходимо вывести только одну запись без повторов с колонки [title] но с максимальным значением из колонки [counter]

То есть результат запроса должен быть

2 ---- запись ---- 1 ----- 7
3 ---- еще что то ---- 1 ---- 2
4 ---- тест1 ---- 2 ---- 4
5 ---- строка ---- 1 ---- 6
6 ---- еще запись ---- 1 ---- 10
.....

Пробовал например так

select distinct [title], [id], [text], [dateStart], [dateEnd], (select count(distinct idUser) from [TableChild] where [idTableMain]=TableMain.id) as UsersCount
from [TableMain] order by counter DESC


Но записи все равно двоятся.

Подскажите как решить

Спасибо.
2 апр 13, 10:08    [14124737]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с запросом  [new]
Naf
Member

Откуда: Москва
Сообщений: 2695
а если будет

4 тест1 2 4
...
7 тест1 2 5
2 апр 13, 10:15    [14124787]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с запросом  [new]
VIT2708
Member [заблокирован]

Откуда: Киев
Сообщений: 1387
Naf,

все равно строка должна быть только одна и в таком случае должно выдать

....
тест1 --- 5
....
2 апр 13, 10:23    [14124840]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с запросом  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
SELECT TOP(1) WITH TIES *,(SELECT COUNT(DISTINCT idUser) FROM [TableChild] WHERE [idTableMain]=TableMain.id) as UsersCount
FROM [TableMain]
ORDER BY ROW_NUMBER()OVER(PARTITION BY [title] OEDER BY [counter] DESC);
2 апр 13, 10:28    [14124879]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с запросом  [new]
VIT2708
Member [заблокирован]

Откуда: Киев
Сообщений: 1387
iap,

ОГРОМНЕЙШЕЕ СПАСИБО.
2 апр 13, 10:33    [14124908]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить