需要統計指定列的乘積
sql server中有exp(sum(log(字段)))的函式
如下例子:
select workorder ,
lineid ,
round(exp(sum(log(throughrate))), 4) * 100 as throughrate
from
#throughrate
group by workorder ,
lineid
exp(sum(log(字段))) 欄位的值是不能夠包含0的,否則出現無效浮點數操作的錯誤
其實如果指定列含有0的話,最終的乘積是0;所以考慮把結果集分成兩部分,等於0以及不等於0兩種情況計算,最終在合併查詢處理
select m.workorder ,
m.lineid ,
case
when n.throughrate = 0
then
0else convert(decimal(18, 4), m.throughrate)
endas throughrate
from ( select workorder ,
lineid ,
round(exp(sum(log(throughrate))), 4) * 100
as throughrate
from #throughrate
where throughrate != 0
group
by workorder ,
lineid
) mleft
join ( select workorder ,
lineid ,
throughrate
from #throughrate
where throughrate = 0
group
by workorder ,
lineid ,
throughrate
) n on m.workorder = n.workorder
and m.lineid = n.lineid
讀取指定列
usr bin env python3 coding utf 8 import xlrd 開啟excel檔案,建立乙個workbook物件,book物件也就是fruits.xlsx檔案,表含有sheet名 rbook xlrd.open workbook key.xlsx sheets方法返回物件列...
linux 提取指定的列
提取name.txt 檔案中的最後一列中以 分割的第二列 awk 符擷取命令 awk f t name.txt awk f res.txt其中 f 表示分割符,nf表示最後一列,nf 1 表示倒數第二列 2表示第二列 0表示全部,1表示第一列 把上一步的資料和name.txt檔案合併生成乙個新的檔案...
select 指定 列值
two way roleid列並不在表sys user中,虛擬roleid列,指定roleid列的值均為aaa,以下兩種方式實現。1.username 為表sys user中存在的列。select userid,replace username,username,aaa as roleid from...