mirror of
https://github.com/siyuan-note/siyuan.git
synced 2025-02-28 05:32:52 +00:00
🎨 Improve database rollup number calculation https://github.com/siyuan-note/siyuan/issues/10822
This commit is contained in:
@@ -716,7 +716,7 @@ func (r *ValueRollup) RenderContents(calc *RollupCalc, destKey *Key) {
|
||||
case CalcOperatorSum:
|
||||
sum := 0.0
|
||||
for _, v := range r.Contents {
|
||||
if nil != v.Number {
|
||||
if KeyTypeNumber == v.Type && nil != v.Number && v.Number.IsNotEmpty {
|
||||
sum += v.Number.Content
|
||||
}
|
||||
}
|
||||
@@ -725,7 +725,7 @@ func (r *ValueRollup) RenderContents(calc *RollupCalc, destKey *Key) {
|
||||
sum := 0.0
|
||||
count := 0
|
||||
for _, v := range r.Contents {
|
||||
if nil != v.Number {
|
||||
if KeyTypeNumber == v.Type && nil != v.Number && v.Number.IsNotEmpty {
|
||||
sum += v.Number.Content
|
||||
count++
|
||||
}
|
||||
@@ -736,7 +736,7 @@ func (r *ValueRollup) RenderContents(calc *RollupCalc, destKey *Key) {
|
||||
case CalcOperatorMedian:
|
||||
var numbers []float64
|
||||
for _, v := range r.Contents {
|
||||
if nil != v.Number {
|
||||
if KeyTypeNumber == v.Type && nil != v.Number && v.Number.IsNotEmpty {
|
||||
numbers = append(numbers, v.Number.Content)
|
||||
}
|
||||
}
|
||||
@@ -747,7 +747,7 @@ func (r *ValueRollup) RenderContents(calc *RollupCalc, destKey *Key) {
|
||||
case CalcOperatorMin:
|
||||
minVal := math.MaxFloat64
|
||||
for _, v := range r.Contents {
|
||||
if nil != v.Number {
|
||||
if KeyTypeNumber == v.Type && nil != v.Number && v.Number.IsNotEmpty {
|
||||
if v.Number.Content < minVal {
|
||||
minVal = v.Number.Content
|
||||
}
|
||||
@@ -757,7 +757,7 @@ func (r *ValueRollup) RenderContents(calc *RollupCalc, destKey *Key) {
|
||||
case CalcOperatorMax:
|
||||
maxVal := -math.MaxFloat64
|
||||
for _, v := range r.Contents {
|
||||
if nil != v.Number {
|
||||
if KeyTypeNumber == v.Type && nil != v.Number && v.Number.IsNotEmpty {
|
||||
if v.Number.Content > maxVal {
|
||||
maxVal = v.Number.Content
|
||||
}
|
||||
@@ -768,7 +768,7 @@ func (r *ValueRollup) RenderContents(calc *RollupCalc, destKey *Key) {
|
||||
minVal := math.MaxFloat64
|
||||
maxVal := -math.MaxFloat64
|
||||
for _, v := range r.Contents {
|
||||
if nil != v.Number {
|
||||
if KeyTypeNumber == v.Type && nil != v.Number && v.Number.IsNotEmpty {
|
||||
if v.Number.Content < minVal {
|
||||
minVal = v.Number.Content
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user