按一行中的条件转换 table
Transforming a table by the condition in one row
我有一个table这样的
Day Operation Times Condition
Monday addition 3 done
Monday subtraction 2 done
Monday subtraction 4 uncomplete
Tuesday multiplication 3 done
Tuesday addition 1 done
Tuesday addition 8 uncomplete
Wednesday subtraction 1 uncomplete
我想将 Condition 列转换为两个不同的列,例如
Day Operation Done Uncomplete Total
Monday addition 3 0 3
Monday subtraction 2 4 6
Tuesday multiplication 3 0 3
Tuesday addition 1 8 9
Wednesday subtraction 0 1 1
将已完成和未完成的操作融合在一行中
在SQL有没有办法做到这一点?
到目前为止,我已经尝试过类似 Creating multiple columns from one column 的使用案例。我想我可能需要先按天分组,然后再按操作分组。
一种方法是条件聚合:
select day, operation,
sum(case when condition = 'done' then times else 0 end) as dones,
sum(case when condition = 'uncomplete' then times else 0 end) as uncompletes,
sum(times) as total
from t
group by day, operation;
您需要用您正在使用的数据库标记您的问题。 MS Access 中的等价物是:
select day, operation,
sum(iif(condition = "done", times, 0)) as dones,
sum(iif(condition = "uncomplete", times, 0)) as uncompletes,
sum(times) as total
from t
group by day, operation;
考虑到您是在 Microsoft Access 上执行此操作,请参考以下教程:https://www.youtube.com/watch?v=ZgerpTHzQes
我有一个table这样的
Day Operation Times Condition
Monday addition 3 done
Monday subtraction 2 done
Monday subtraction 4 uncomplete
Tuesday multiplication 3 done
Tuesday addition 1 done
Tuesday addition 8 uncomplete
Wednesday subtraction 1 uncomplete
我想将 Condition 列转换为两个不同的列,例如
Day Operation Done Uncomplete Total
Monday addition 3 0 3
Monday subtraction 2 4 6
Tuesday multiplication 3 0 3
Tuesday addition 1 8 9
Wednesday subtraction 0 1 1
将已完成和未完成的操作融合在一行中
在SQL有没有办法做到这一点?
到目前为止,我已经尝试过类似 Creating multiple columns from one column 的使用案例。我想我可能需要先按天分组,然后再按操作分组。
一种方法是条件聚合:
select day, operation,
sum(case when condition = 'done' then times else 0 end) as dones,
sum(case when condition = 'uncomplete' then times else 0 end) as uncompletes,
sum(times) as total
from t
group by day, operation;
您需要用您正在使用的数据库标记您的问题。 MS Access 中的等价物是:
select day, operation,
sum(iif(condition = "done", times, 0)) as dones,
sum(iif(condition = "uncomplete", times, 0)) as uncompletes,
sum(times) as total
from t
group by day, operation;
考虑到您是在 Microsoft Access 上执行此操作,请参考以下教程:https://www.youtube.com/watch?v=ZgerpTHzQes