Помогите составить сложный sql запрос

241
15 июня 2017, 05:22

Есть таблица, одним запросом хочу получить, к примеру, 2 значения - сумма значений value и сумма значений points, но не могу понять, как составить условия для 2х значений одновременно, возможно ли это? Вот например сумма values:

`SELECT SUM(value) AS balance FROM db WHERE id>30 AND value>1000`;

Тоже самое для points

`SELECT SUM(value) AS balance FROM db WHERE xxx=2 OR yyy=3`;

А можно ли как то объединить эти 2 запроса в один? SELECT SUM(value) AS balance, SUM(point) AS points FROM.... WHERE ??

Всё это при условии, что данные перекликаются и не получится просто соединить эти 2 условия в WHERE

Answer 1

Да, можно. Запихните условия where в агрегирующую функцию sum:

select id, sum(if(xxx = 2 or yyy = 3, value, 0)) as balance_1,
    sum(if(id > 30 AND value > 1000, value, 0)) as balance_2
from db
group by id
Answer 2

Вероятно, есть решение поизящнее, но в лоб можно воспользоваться подзапросами -

SELECT 
     balance = (SELECT SUM(value) FROM db WHERE id>30 AND value>1000), 
     points = (SELECT SUM(value) FROM db WHERE xxx=2 OR yyy=3`);
READ ALSO
Update для таблицы

Update для таблицы

Помогите сделать update для таблицы, delete реализован

286
Почему findViewById(); не лучшее решение для связывания

Почему findViewById(); не лучшее решение для связывания

В большинстве книг авторы используют этот методСлышал что это далеко не самое лучшее решение есть ли альтернатива и какие могут быть последствия

282
Как в приоритетной очереди найти и удалить запись?

Как в приоритетной очереди найти и удалить запись?

Можно ли реализовать в данном примере поиск и удаление одной записи?

317
Как привязать приложение к аккаунту Google?

Как привязать приложение к аккаунту Google?

Нужно привязать приложение к аккаунту Google, чтобы при смене девайса или на разных девайсах с одним аккаунтом все работалоКак это делается?...

486