Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / MAX из SUM / 12 сообщений из 12, страница 1 из 1
01.02.2016, 17:25:32
    #39160465
quende
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MAX из SUM
Друзья мои, уже все перебрал, ничего не выходит.

есть таблица вида:
date - дата, user - пользователь (уникален в рамках дня), p - поинты

date_1 | user_1 | p_1
date_1 | user_1 | p_2
date_1 | user_1 | p_3
date_1 | user_1 | p_4
date_1 | user_1 | p_5

date_1 | user_2 | p_1
date_1 | user_2 | p_2
date_1 | user_2 | p_3
date_1 | user_2 | p_4
date_1 | user_2 | p_5

...

date_10 | user_10 | p_1
date_10 | user_10 | p_2
date_10 | user_10 | p_3
date_10 | user_10 | p_4
date_10 | user_10 | p_5

Задача для каждого дня выявить user с максимальной суммой по поинтам в рамках дня.
В итоге, должно получиться что-то вроде:

date_1 | user_7 | p_s1
date_2 | user_3 | p_s2
date_3 | user_9 | p_s3
...

Где p_s - это сумма поинтов за день (при этом максимальная в рамках дня)
Ключевого поля нет, так что изворачиваюсь как могу, что-то никак не могу разобраться.

Вот я получил сумму по поинтам по пользователю:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT  
date,
user,  
sum(p) as points 

FROM  
tab

GROUP BY user,date



И все. Дальше через MAX() не получается получить user.
Прошу помочь!
...
Рейтинг: 0 / 0
01.02.2016, 17:27:26
    #39160466
quende
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MAX из SUM
quendeuser - пользователь (уникален в рамках дня)
опечатался, пользователь не уникален в рамках дня. согласно таблице.
...
Рейтинг: 0 / 0
01.02.2016, 18:39:37
    #39160512
quende
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MAX из SUM
Вроде получилось самому:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
SELECT
tt1.date,
tt1.user,
tt1.p

FROM
(
    SELECT  
    date,
    user,  
    sum(p) as p

    FROM  
    MyTable

    GROUP BY user,date
) as tt1

JOIN

(
    SELECT  
    t1.date,
    MAX(t1.p) as p

    FROM
    (
        SELECT  
        idate,
        user,  
        sum(p) as p

        FROM  
        MyTable 

        GROUP BY user,date
    ) as t1

    GROUP BY
    t1.date     
) as tt2

ON tt1.date = tt2.date and tt1.p = tt2.p
...
Рейтинг: 0 / 0
01.02.2016, 19:14:38
    #39160526
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MAX из SUM
FAQ в разделе для кого писан?
...
Рейтинг: 0 / 0
02.02.2016, 13:34:09
    #39161022
quende
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MAX из SUM
AkinaFAQ в разделе для кого писан?

Akina , спасибо за развернутый ответ. Он очень помог!
Особенно это актуально после того, как я сам разобрался и лишь выложил найденное мною решение, тему, в принципе, можно закрывать.
...
Рейтинг: 0 / 0
02.02.2016, 13:57:10
    #39161061
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MAX из SUM
quendeAkinaFAQ в разделе для кого писан?

Akina , спасибо за развернутый ответ. Он очень помог!
Особенно это актуально после того, как я сам разобрался и лишь выложил найденное мною решение, тему, в принципе, можно закрывать.а где вы увидели ответ? по-моему, там был только вопрос...
...
Рейтинг: 0 / 0
02.02.2016, 16:03:01
    #39161205
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MAX из SUM
quendeОсобенно это актуально после того, как я сам разобрался и лишь выложил найденное мною решение
Настоятельно рекомендую не выёживаться и всё-таки прочитать ФАК. Там описаны 4 разных версии этой задачи, и решаются они по-разному. Вполне может оказаться, что "найденное мною решение" на самом деле решает не ту версию задачи, которую нужно. Но даже если вдруг решена именно та задача - дополнительные знания не окажутся бесполезными.
...
Рейтинг: 0 / 0
02.02.2016, 17:33:05
    #39161334
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MAX из SUM
quende,
две вложенных группировки, по пользователь и дню(под запрос) , и внешняя по дню.
что сложного - не понятно совсем.
...
Рейтинг: 0 / 0
03.02.2016, 10:08:09
    #39161663
quende
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MAX из SUM
Вы же понимаете, что ни один из Вас толком ничего по решению задачи не сказал, хотя как мне показалось (могу ошибаться), описал я ее достаточно подробно (если нет, то можно было сказать, что не хватает данных для решения). Не думаю, что ответы вроде
Код: sql
1.
 что сложного - не понятно совсем. 

помогают. Уважаемый MasterZiv , почему Вы решили, что понимаете на каком уровне мои знания в этом вопросе и будет ли этот вопрос для меня "сложным" ? В случае, если я его задаю, значит не знаю ответа и для меня эта задача является сложной, что и логично, ведь, как я полагал, для этого и существуют форумы.
Однако, по Вашим ответам можно понять, что форумы нужны только для того, чтобы отписаться в стиле "что за фигня, даже отвечать не буду". Если Вы считаете, что задача тривиальна для Вашего развития и ответ на поставленный вопрос не достоин Вашего внимания, ничто не мешает пройти мимо.
Прошу прощения, если обидел чье-то самомнение, еще раз повторюсь - тему можно закрывать (читай ответов более не требуется).
Спасибо за помощь, друзья!
...
Рейтинг: 0 / 0
03.02.2016, 10:42:18
    #39161693
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MAX из SUM
quendeЕсли Вы считаете, что задача тривиальна
Да. Путь составления запроса обсосан со всех сторон, и найти его было не просто, а очень просто - элементарным просматриванием заголовков тем, помеченных как FAQ.

quendeпо Вашим ответам можно понять, что форумы нужны только для того, чтобы отписаться в стиле "что за фигня, даже отвечать не буду".
Тот, кто неспособен даже на описанный просмотр заголовков тем, бОльшего и не заслуживает.
Читать внимательно .
...
Рейтинг: 0 / 0
03.02.2016, 11:19:33
    #39161725
quende
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MAX из SUM
AkinaбОльшего и не заслуживает.
)))))
Простите, не удержался

Не понимал никогда, зачем включать "быдло", когда тебя просят о помощи?
Все мы с чего-то, когда-то начинали. Простого ответа не достаточно, нужно окунуть человека в дерьмо и показать важность своего бытия на этом прекрасном форуме.

Пройти мимо, не "проучив новичка" ? Нет, не слышал.

Akina , Вы прекрасны и божественны в познаниях по этому вопросу (судя по всему), но терпимее надо быть :).

Оставьте в покое эту тему уже!)
...
Рейтинг: 0 / 0
03.02.2016, 11:51:59
    #39161757
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MAX из SUM
quendeПройти мимо, не "проучив новичка" ? Нет, не слышал.
Просто это самый эффективный (по многолетнему опыту) способ в кратчайшие сроки сделать из новичка если и не специалиста, то хотя бы грамотного участника.
Если новичку не врезать "до кровавых соплей" - в подавляющем большинстве случаев он так и остаётся новичком. Почему-то стоит ему начать получать ответы, как он мгновенно отключает мозг и только спрашивает и спрашивает - причём порой элементарные вещи, и порой не по одному разу.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / MAX из SUM / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]