⚠️统计注意点1

⚠️统计注意点1

1.1Tableau的百分比不完全百分之百 保留两位小数 (保留几位小数会在最后一位上下加1)

  • 如1.00 保留两位为0-0.99 和 1.01-2
  • 如1.0000 保留四位为0-0.9999 和 1.0001-2
真实值 四舍五入值 百分比
0.003 0.00 0%
0.003 0.00 0%
0.004 0.00 0%
0.990 0.99 99%

真实值 四舍五入值 百分比
0.006 0.01 1%
0.006 0.01 1%
0.008 0.01 1%
0.980 0.98 98%


1.2 Tableau平均数的计算 sum(clk) / sum(impr) ≠ avg(clk/impr)

MySQL avg(impr) = sum(impr) / count(impr) 如果列存在null 就不算总数

  • 取前5条 第5条为null avg(impr) = sum(impr) / count(impr) 400 / 4 = 100
  • 取前5条 第5条为200 avg(impr) = sum(impr) / count(impr) 600 / 5 = 120

注意⚠️:
部分先avg(impr) 然后总体avg(impr) ≠ 整体avg(impr)

  • 取前5条 第5条为200 先部分avg(impr)再总体avg(impr) 500 / 4 = 125
  • 取前5条 第5条为200 avg(impr) = sum(impr) / count(impr) 600 / 5 = 120
clk impr
1 100
1 100
3 100
4 100
5 null/200

取前2条 sum(clk) / sum(impr) = 2 / 5 = 40%
取前2条 avg(clk / impr) = avg(50%,33%) = 41.5%

clk impr clk/impr
1 2 50%
1 3 33%

sum(clk) / sum(impr) clk_rate
等同于
avg(clk) / avg(impr) 如果数据都是正常的
impr出现null,0另算
2 1 1
2 null 0
2 1 1


1.3 MySQL 被除数为0 或者null 以及其他非数值类型 结果为null

分子 分母 结果
1 0 null
1 null null
1 '字符' null
1 '1' 1
1 true/false true为1 false为null
select 1/0            -- null
union all 
select 1/null         -- null
union all 
select 1 / '字符'      -- null
union all 
select 1 / '1'        -- 1
union all 
select 1 / true       -- 1
union all 
select 1 / false      -- null

1.4 MySQL 其他类型与数值类型进行计算会默认进行转换

MySQL总共的数据类型为三种:数值类型、日期和时间类型、字符串类型
https://www.runoob.com/mysql/mysql-data-types.html
这些类型与数值类型进行算术运算会进行默认转化:
数值类型 可以直接进行算术运算
字符串类型 如果字符全是数值直接转换成数值,其他为0
日期和时间类型 默认将日期和时间类型转成对应的整型,进行算术运算
⚠️MySQL没有布尔类型,默认true为1 false为0

分子 分母 结果
6.8 1 6.8
'6.8' 1 6.8
'字符' 1 0
true 1 1
2019-10-01 00:00:00 1 20191001000000.0000
null 1 null
select 6.8 / 1         -- 6.8
union all 
select '6.8' / 1       -- 6.8
union all
select '字符' / 1       -- 0
union all 
select true / 1        -- 1
union all
select false / 1       -- 0
union all 
select null / 1        -- null
全部评论

相关推荐

兄弟找我内推呗:兄弟你问问他们饭菜能打包吗
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务