SUM из запроса предварительного просмотра (mysql)

У меня есть этот запрос из таблицы Uploads:

select
    Costumer as Customer,
    max(Week) as 'Max Week',
    count(distinct(POS)) as 'Total POS'
from Uploads
where year = 2022
group by Costumer;

и возвращает это:

КлиентМаксимальная неделяВсего POS
Клиент А365
Клиент Б527
Клиент С333

В этой таблице есть дополнительный столбец с именем Inventory, и я хочу знать SUM(Inventory), но с отфильтрованными ранее неделями. Например:

КлиентМаксимальная неделяВсего POSИнвентарь
Клиент А365456
Клиент Б527123
Клиент С3332345
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
1
0
36
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете решить эту проблему, используя Row_Number вот так


SELECT t.[Total POS],
       t.customer,
       t.week MaxWeek,
       t.SumInventoryPerWeek SumForMaxWeek
       FROM (
select
    Costumer as Customer,
    Week as week,
    count(distinct(POS)) as 'Total POS',
    SUM(Inventory) SumInventoryPerWeek,
    ROW_NUMBER() OVER(PARTITION BY Costumer ORDER BY Week DESC) rw
from Uploads
where year = 2022
group by Costumer,Week
) t
WHERE t.rw=1

Другие вопросы по теме