Условный агрегат SQL

У меня есть таблица:

items status count date
----- ------ ----- ----------
apple good   100   01/02/2017
apple good   200   03/02/2017
apple bad    50    02/02/2017
pear  good   100   04/02/2017

Результат, который я ищу, состоит в том, чтобы суммировать количество на основе статуса и отображать самую последнюю дату для каждого элемента:

items  count  date
-----  -----  ----------
apple  250    03/02/2017
pear   100    04/02/2017

Пожалуйста, отметьте имя БД, которое вы используете ...

Barbaros Özhan 01.05.2018 21:51
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
1
1
46
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

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

Используйте сумму, максимум и группу по и случай, когда для суммы правильно хорошо и плохо

select items, sum(case when status = 'good' then count else -count end), max(date)
from my_table 
group by itmes

или если вам не нужна относительная сумма, основанная на хорошем и плохом

select items, sum( count ), max(date)
from my_table 
group by itmes

Попробуй это:

SELECT items, SUM(count) count, MAX(date) date
FROM table
GROUP BY items

А если вы хотите разделить сумму по каждому статусу, то:

SELECT items, status, SUM(count) count, MAX(date) date
FROM table
GROUP BY items, status

Я думаю, ты просто хочешь:

select items, sum(count), max(date)
from t
group by items;

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