#sql
#sql
Вопрос:
У меня есть база данных, которая содержит:
---- --------------------- ------------- -----------------
| id | date | pay| usr_type |
---- --------------------- ------------- -----------------
| 1 | 2016-10-17 | 500| boss|
| 2 | 2016-10-17 | 200| boss|
| 3 | 2016-10-24 | 300| user|
| 4 | 2016-10-24 | 100| user|
---- --------------------- ------------- -----------------
Я хочу, чтобы результаты были примерно такими:
--------------------- ------------- -----------------
| date | user| boss|
---- --------------------- -------- -----------------
| 2016-10-17 | 0| 700|
| 2016-10-24 | 400| 0|
---- --------------------- ------------- ------------
Ответ №1:
Вот один из вариантов, использующий conditional aggregation
:
select date,
sum(case when usr_type = 'user' then pay else 0 end) user,
sum(case when usr_type = 'boss' then pay else 0 end) boss
from yourtable
group by date
Комментарии:
1. Могу ли я указать два условия в предложении WHEN?
2. @windc Конечно, >> когда usr_type = ‘user’ и usr_active=1 тогда… << например