我有一个电话数据集,其中包含一个name列。有重复的名字,因为人们可以多次调用。对列进行计数会给我们带来如下结果:
我真正想要的是调用#的分解,我将使用它作为图形轴:
感谢您的阅读!
发布于 2018-10-31 18:47:20
如果您想要SQL解决方案,这基本上就是聚合:
select numcalls, count(*)
from t
group by numcalls
order by numcalls;这将不会填充0值。为此,可以使用表构造函数和left join。
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;发布于 2018-10-31 19:01:00
如果不需要调用次数的0值,则可以在SQL中使用子选择。
select numbercalls, count(*)
from (
select person, count(*) as numbercalls
from t
group by person
) group by numbercalls
order by numbercalls;发布于 2018-11-01 21:52:22
在DAX中,您可以这样做:
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,其中包含从2到5的值。
最后,向该表中添加一个列,该列计算Summary表中的Summary与当前表中的Calls数量相匹配的人数。
https://stackoverflow.com/questions/53090096
复制相似问题