mysql показать максимум данных и сумму из таблицы - PullRequest
0 голосов
/ 07 мая 2020

У меня есть две таблицы, и я хочу отобразить результаты для MAX of SUM total, сгруппировать по имени и месяцу. отображать только максимальное количество данных из общих результатов SUM каждый месяц и группировать по имени. это моя таблица

table t2
+-------+-------+-------+
| month | total | id_t3 |
+-------+-------+-------+
|   1   |  15   |   1   |
|   1   |  20   |   2   |
|   1   |  50   |   1   |
|   2   |  40   |   2   |
|   2   |  20   |   3   |
|   2   |  20   |   1   |
|   3   |  10   |   3   |
+-------+-------+-------+
table t3
+----+--------+
| id |  name  |
+----+--------+
| 1  |  brian |
| 2  |  jessi |
| 3  |  redy  |
+----+---------
i want result 
+-------+---------------+
| month | total |  name |
+-------+---------------+
|   1   |  65   | brian |
|   2   |  40   | jessi |
|   3   |  10   | redy  |
+-------+---------------+

И этот мой запрос SQL

select t2.month, MAX(total), t3.name
from (
select t2.month, SUM(t2.total)as total, t3.name
from t2, t3
where t2.idt3 = t3.id
group by t2.month, t3.name
)result
group by t2.month, t3.name
order by total DESC

Ответы [ 2 ]

0 голосов
/ 07 мая 2020

Если вы хотите максимальное имя в месяц, используйте оконные функции:

select month, name, total
from (select t2.month, t3.name, sum(t2.total) as total
             row_number() over (partition by t2.month order by sum(t2.total) desc) as seqnum
      from t2 join
           t3
           on t2.id_t3 = t3.id
      group by t2.month, t3.name
     ) t
where seqnum = 1
order by month;
0 голосов
/ 07 мая 2020

Надеюсь, это решит вашу проблему. group by месяц и имя

select t2.month, SUM(t2.total), t3.name
from t2
join t3 on t2.id_t3 = t3.id
group by t2.month, t3.name
order by t2.total desc
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...