查询SQL列

时间:2017-03-27 22:53:09

标签: sql

我有这个:

fit <- train(Purchase ~ ., 
         data = training, 
         method = "lm", 
         trControl = fitControl)

我想要这个:

Id     Store        Situation   Total
1      Store 1      Credit       10
2      Store 1      No credit    20
3      Store 3      Credit       50
4      Store 3      No credit    80

这可能吗?

感谢。

1 个答案:

答案 0 :(得分:1)

这只是条件聚合:

select store,
       sum(case when situation = 'Credit' then total else 0 end) as Credit,
       sum(case when situation = 'No Credit' then total else 0 end) as NoCredit,
from t
group by store;

您还可以添加id。这是一种适用于大多数数据库的方法:

select row_number() over (order by store) as id,
       store,
       sum(case when situation = 'Credit' then total else 0 end) as Credit,
       sum(case when situation = 'No Credit' then total else 0 end) as NoCredit,
from t
group by store
order by store;