首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >总价值计算

总价值计算
EN

Stack Overflow用户
提问于 2018-10-31 18:45:39
回答 4查看 52关注 0票数 0

我有一个电话数据集,其中包含一个name列。有重复的名字,因为人们可以多次调用。对列进行计数会给我们带来如下结果:

  • A-3人电话
  • B-5人电话
  • C-2人电话
  • D-3人电话

我真正想要的是调用#的分解,我将使用它作为图形轴:

  • 2次呼叫-1
  • 3次呼叫-2
  • 4次呼叫-0
  • 5次呼叫-1

感谢您的阅读!

EN

回答 4

Stack Overflow用户

发布于 2018-10-31 18:47:20

如果您想要SQL解决方案,这基本上就是聚合:

代码语言:javascript
复制
select numcalls, count(*)
from t
group by numcalls
order by numcalls;

这将不会填充0值。为此,可以使用表构造函数和left join

代码语言:javascript
复制
select v.numcalls, count(t.numcalls);
from (values (2), (3), (4), (5)) v(numcalls) left join
     t
     on v.numcalls = t.numcalls
group by v.numcalls
order by v.numcalls;
票数 1
EN

Stack Overflow用户

发布于 2018-10-31 19:01:00

如果不需要调用次数的0值,则可以在SQL中使用子选择。

代码语言:javascript
复制
select numbercalls, count(*)
from (
  select person, count(*) as numbercalls
  from t
  group by person
) group by numbercalls
order by numbercalls;
票数 1
EN

Stack Overflow用户

发布于 2018-11-01 21:52:22

在DAX中,您可以这样做:

代码语言:javascript
复制
CalculatedTable =
VAR Summary = SUMMARIZE(Table1, Table1[Person], "Cnt", COUNT(Table1[Call]))
VAR NumCalls = SELECTCOLUMNS(GENERATESERIES(2,5), "Calls", [Value])
RETURN ADDCOLUMNS(NumCalls, "People", SUMX(Summary, IF([Cnt] = [Calls], 1, 0)))

首先,您总结您的数据,以获得每个人的计数。

然后创建一个表NumCalls,其中包含一个列Calls,其中包含从25的值。

最后,向该表中添加一个列,该列计算Summary表中的Summary与当前表中的Calls数量相匹配的人数。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53090096

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档