FineBI 无法将聚合和非聚合参数混用(或条件求和)

例如:使用 IF 函数对聚合函数进行二次计算,当公式中含有非聚合参数时,公式不合法,如下图所示:

方案一  将非聚合参数变成聚合参数

如下图所示:

方案二  先逻辑判断,再聚合

示例:计算「省份」为「北京」且「客户名称」为「北控软件有限公司」的「合同金额」总量。

创建仪表板,选择「地区数据分析」数据集,创建「计算字段」,输入字段名称和公式:SUM_AGG(IF(省份="北京市"&&客户名称="北控软件有限公司",回款金额,0)),

如下图所示:

 公式说明:

公式 说明
IF(省份="北京市"&&客户名称="北控软件有限公司",回款金额
请用数据库代码解答:任务描述 本关任务:学习本关知识后,写出一条简单的 select 查询语句,完成指定的查询要求。 相关知识 为了完成本关任务,你需要掌握:1.函数的概念及其用法,2.聚合的概念及其用法。 函数的概念及其用法 SQLite 内置了很多函数聚合,它们可以应用在很多子句中。你可以把函数聚合理解为两类常特殊且实用的操作符,因为它们可以完成普通操作符无法完成的操作。 聚合本质上是特殊的函数。函数聚合的区别是:函数应用在结果集的每一行,进行一到一映射。聚合应用在结果集的所有行(也可以应用在分组,下一关将介绍分组),进行多到一映射。例如,如果结果集有 100 行,应用聚合后只能得到 1 个值。 函数的类型包括数值函数(如 abs,计算绝对值)字符串格式函数(如 upper lower,分别把字符串转化为大写小写格式)。函数聚合不区分大小写,这与 SQL 保持一致。 函数的基本语法如下: select function(column), function(column), ... from tables where function(column) predicate; 具体语义说明: function 是各种可用的函数,它们接受属性列 column 作为参数(这是基本用法,想了解更高级用法可以查阅相关资料)。函数可以应用在 select 子句 where 子句中; 在 select 子句中,函数属性列组合的结果是新的属性列,存放在结果关系表; 在 where 子句中,函数属性列组合的结果是逻辑表达式的一部分,参与对行的筛选断言。 应用示例: select id, upper(name), length(name) from foods where length(name) <= 6; 查询结果将类似于下表: id upper(name) length(name) 12 PIE 3 15 ORANGE 6 18 APPLE 5 聚合的概念及其用法 聚合是特殊的函数,它基于一组值计算出一个聚合值。标准的聚合函数包括 sum(求和)、avg(求平均值)、max(求最大值)、min(求最小值)、count(求总个数)等。 聚合的基本语法如下: select aggregate(column), aggregate(column), ... from tables where predicate; 具体语义说明: aggregate 是各种可用的聚合函数,它们接受属性列 column 作为参数(这是基本用法,想了解更高级用法可以查阅相关资料)。聚合可以应用在 select 子句 having 子句(下一实训介绍)中,但不可应用在 where 子句中(因为这 where 子句对行断言矛盾); 由于聚合为多到一映射,所以 select 子句的结果只有一行(对于分组情况,结果行数分组数相同)。 应用示例: select min(price) from foods; 查询结果将类似于下表(所有食物价格最低为 2 元): min(price) 2 特别说明:函数为一到一映射,聚合为多到一映射,请勿在 select 子句中混用函数聚合,否则将产生预期结果。 编程要求 假设数据库中已经存在一个关系表 students ,表结构内容如下,其中 id、name、sex 为字符串类型属性,age 为数字类型属性。 id name sex age 20181111 朱霏霏 女 23 20181112 张三 男 24 20171111 刘同 女 25 20171112 马菲菲 女 25 20161111 冯高 男 26 20161112 赵飞飞 女 26 查询要求是得到姓名为两个字的学生的平均年龄(查询结果仅需包含平均年龄字段)。请根据提示,在右侧编辑器 Begin-End 区间补充代码,编写出正确的 SQL 语句。 测试说明 我们会对你编写的代码进行测试: 平台将创建如上描述的 students 表; 平台将执行你补全的 sql 文件; 最后对比实际输出正确结果。 测试输入: 预期输出:结果正确 开始你的任务吧,祝你成功!
06-10
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

种麦南山下

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值