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

Откуда:
Сообщений: 12
Есть таблица Statistics, в ней есть поля Id, UserId, Date, EmailSize, EmailCount и т.д.. Как выбрать айдишники первых 10 пользователей у которых, например, максимальный EmailSize за две недели?
22 авг 17, 19:59    [20742398]     Ответить | Цитировать Сообщить модератору
 Re: Выбрать данные из таблицы за две недели и отсортировать по определенному полю  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36968
Освоить group by и order by.
22 авг 17, 20:04    [20742401]     Ответить | Цитировать Сообщить модератору
 Re: Выбрать данные из таблицы за две недели и отсортировать по определенному полю  [new]
Аккаунт чтобы задать вопрос
Member

Откуда:
Сообщений: 12
Гавриленко Сергей Алексеевич,

Картинка с другого сайта.

Так?
22 авг 17, 20:08    [20742404]     Ответить | Цитировать Сообщить модератору
 Re: Выбрать данные из таблицы за две недели и отсортировать по определенному полю  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36968
Не так. Перерисовывать на картинке как не буду.
22 авг 17, 20:09    [20742406]     Ответить | Цитировать Сообщить модератору
 Re: Выбрать данные из таблицы за две недели и отсортировать по определенному полю  [new]
Аккаунт чтобы задать вопрос
Member

Откуда:
Сообщений: 12
Гавриленко Сергей Алексеевич, там должны айдишники пользователей быть уникальными, но там повторы
22 авг 17, 20:11    [20742408]     Ответить | Цитировать Сообщить модератору
 Re: Выбрать данные из таблицы за две недели и отсортировать по определенному полю  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36968
Аккаунт чтобы задать вопрос
Гавриленко Сергей Алексеевич, там должны айдишники пользователей быть уникальными, но там повторы
Потому что вы неписали, что уникальными должны быть не айдишники, а айдишники и размер ящика.
22 авг 17, 20:12    [20742409]     Ответить | Цитировать Сообщить модератору
 Re: Выбрать данные из таблицы за две недели и отсортировать по определенному полю  [new]
Аккаунт чтобы задать вопрос
Member

Откуда:
Сообщений: 12
Гавриленко Сергей Алексеевич,

Картинка с другого сайта.
Как это делается?
22 авг 17, 20:16    [20742417]     Ответить | Цитировать Сообщить модератору
 Re: Выбрать данные из таблицы за две недели и отсортировать по определенному полю  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36968
Зачем вы постите одну и ту же картинку? Зачем вы вообще постите картинки? Вы не умеете пользоваться сочетанием клавиш Ctrl+C/Ctrl+V?
22 авг 17, 20:18    [20742419]     Ответить | Цитировать Сообщить модератору
 Re: Выбрать данные из таблицы за две недели и отсортировать по определенному полю  [new]
Аккаунт чтобы задать вопрос
Member

Откуда:
Сообщений: 12
Гавриленко Сергей Алексеевич, там разные запросы
22 авг 17, 20:18    [20742421]     Ответить | Цитировать Сообщить модератору
 Re: Выбрать данные из таблицы за две недели и отсортировать по определенному полю  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36968
Аккаунт чтобы задать вопрос
Гавриленко Сергей Алексеевич, там разные запросы
Попиксельно сравнить надо было?
22 авг 17, 20:19    [20742424]     Ответить | Цитировать Сообщить модератору
 Re: Выбрать данные из таблицы за две недели и отсортировать по определенному полю  [new]
Аккаунт чтобы задать вопрос
Member

Откуда:
Сообщений: 12
Гавриленко Сергей Алексеевич, как это сделать можно написать? я в душе не представляю как это делается. от sql сервера как и от прочих продуктов M$ мне уже тошнит
22 авг 17, 20:24    [20742433]     Ответить | Цитировать Сообщить модератору
 Re: Выбрать данные из таблицы за две недели и отсортировать по определенному полю  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36968
Аккаунт чтобы задать вопрос
Гавриленко Сергей Алексеевич, как это сделать можно написать?
Взять и написать правильный запрос. Когда вам надоест постить картинки и вы запостите свой запрос текстом, то может быть кто-то и поправит. Где у вас ошибка, я вам уже вот ту рассказалт: 20742409.
Аккаунт чтобы задать вопрос
я в душе не представляю как это делается. от sql сервера как и от прочих продуктов M$ мне уже тошнит
Тошнит -- переквалифицируйтесь в дворники, их в стране дефицит.

Сообщение было отредактировано: 22 авг 17, 20:33
22 авг 17, 20:26    [20742437]     Ответить | Цитировать Сообщить модератору
 Re: Выбрать данные из таблицы за две недели и отсортировать по определенному полю  [new]
Аккаунт чтобы задать вопрос
Member

Откуда:
Сообщений: 12
Гавриленко Сергей Алексеевич, я не знаю как написать что айдишник должен быть уникальным
22 авг 17, 20:34    [20742444]     Ответить | Цитировать Сообщить модератору
 Re: Выбрать данные из таблицы за две недели и отсортировать по определенному полю  [new]
Аккаунт чтобы задать вопрос
Member

Откуда:
Сообщений: 12
Гавриленко Сергей Алексеевич, Картинка с другого сайта. так правильно?
22 авг 17, 20:41    [20742455]     Ответить | Цитировать Сообщить модератору
 Re: Выбрать данные из таблицы за две недели и отсортировать по определенному полю  [new]
aleks222
Guest
select top(10) * 
  from (  select *, n = row_number() over( partition by UserId order by EmailSize desc) from Statistics ) as x
  where n = 1
  order by EmailSize
22 авг 17, 20:44    [20742461]     Ответить | Цитировать Сообщить модератору
 Re: Выбрать данные из таблицы за две недели и отсортировать по определенному полю  [new]
aleks222
Guest
select top(10) * 
  from (  select *, n = row_number() over( partition by UserId order by EmailSize desc) from Statistics where  Date > dateadd( day, -2*7, getdate() ) ) ) as x
  where n = 1
  order by EmailSize


Пардон... две недели забыл.
22 авг 17, 20:48    [20742465]     Ответить | Цитировать Сообщить модератору
 Re: Выбрать данные из таблицы за две недели и отсортировать по определенному полю  [new]
aleks222
Guest
Но можно тряхнуть стариной - коррелированный запрос

select top(10) * 
  from (  select * from Statistics where  Date > dateadd( day, -2*7, getdate() ) ) as x
  where EmailSize = ( select max(EmailSize) from Statistics where  Date > dateadd( day, -2*7, getdate() ) and UserID = x.UserID )
  order by EmailSize
22 авг 17, 20:52    [20742471]     Ответить | Цитировать Сообщить модератору
 Re: Выбрать данные из таблицы за две недели и отсортировать по определенному полю  [new]
Аккаунт чтобы задать вопрос
Member

Откуда:
Сообщений: 12
aleks222, а то что я методом тыка сделал не годится?
22 авг 17, 20:54    [20742473]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить