2015-08-13 2 views
0

Учитывая следующую таблицуMysql поля суммы на основе значения другого поля

sku  store  sold 
SKU_1 store_1 22 
SKU_2 store_1 10 
SKU_3 store_1 15 
SKU_1 store_2 10 
SKU_2 store_2 50 
SKU_3 store_2 10 
SKU_1 store_3 1 
SKU_2 store_3 4 
SKU_3 store_3 61 

Что бы запрос, чтобы узнать:

  1. Сколько SKU_1 были проданы в store_1 и store_2
  2. Сколько SKU_2 было продано в любом магазине больше, чем store_1, т. Е. В этом примере это может быть store_2 и store_3, но потенциально больше с большим количеством магазинов в

ответ

0

Сколько SKU_1 были проданы в store_1 и store_2

select sum(sold) as SKU_1_sold 
from tbl 
where sku = 'SKU_1' 
and store in ('store_1', 'store_2') 

Сколько SKU_2 были проданы в любом магазине больше store_1

select sum(sold) as SKU_2_sold 
from tbl 
where sku = 'SKU_2' 
and store > 'store_1' 
0

Вы можете использовать условные агрегации для этого при выполнении агрегирования на различное условиях что-то как

select 
sum( 
    case 
    when sku = 'SKU_1' and store in('store_1','store_2') then sold 
    else 0 
    end 
) as sold1, 
sum( 
    case 
    when sku = 'SKU_2' and store <> 'store_1' then sold 
    else 0 
    end 
) as sold2 
from table_name 
Смежные вопросы