powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / MAX из SUM
12 сообщений из 12, страница 1 из 1
MAX из SUM
    #39160465
quende
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Друзья мои, уже все перебрал, ничего не выходит.

есть таблица вида:
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
MAX из SUM
    #39160466
quende
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
quendeuser - пользователь (уникален в рамках дня)
опечатался, пользователь не уникален в рамках дня. согласно таблице.
...
Рейтинг: 0 / 0
MAX из SUM
    #39160512
quende
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вроде получилось самому:

Код: 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
MAX из SUM
    #39160526
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FAQ в разделе для кого писан?
...
Рейтинг: 0 / 0
MAX из SUM
    #39161022
quende
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AkinaFAQ в разделе для кого писан?

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

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

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

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

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

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

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

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


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