如何对Tableau中20%的记录进行随机抽样?

时间:2016-08-24 18:50:46

标签: random tableau

在Tableau 9.2中,是否可以生成随机的记录样本?如果是这样,我怎么能这样做?假设我有一个名为Field1的字段,那么我打算只选择20%的记录。到目前为止,我有found如何在Tableau中生成随机整数,尽管令人困惑的是Tableau does not已经有了这个功能:

随机种子

(DATEPART('second', NOW()) + 1) * (DATEPART('minute', NOW()) + 1) * (DATEPART('hour', NOW()) + 1) * (DATEPART('day', NOW()) + 1)

随机数

((PREVIOUS_VALUE(MIN([Seed])) * 1140671485 + 12820163) % (2^24))

Random Int

INT([Random Number] / (2^24) * [Random Upper Limit]) + 1

那么我怎样才能创建一个计算字段来仅显示构成​​Field1的20%的随机记录?

3 个答案:

答案 0 :(得分:2)

进行提取时,会出现一个对话框面板,您可以在其中过滤记录并指定滚动到可见尺寸。

对于至少一些数据源,您还可以指定记录数量的限制(比如抓住前2000条记录)或随机百分比(例如,记录的10%)

然后,您可以快速使用小提取物设计viz,然后在准备好时删除提取或刷新所有数据。我不认为每个数据源都支持随机选择。

答案 1 :(得分:2)

Tableau中有一个随机数函数,但它是隐藏的,不会出现在可用函数列表中。

是“随机()”。它生成一个介于0和1之间的均匀分布数字。

没有记录,但它有效。例如,请参阅此前一个答案:how to generate pseudo random numbers and row-count in Tableau

答案 2 :(得分:1)

我最后通过我的MS Access数据库中的后端解决了我的问题,并在我创建的MS Access VBA宏中使用了以下MS Access SQL查询:

    value1 = "some_value"
    fieldName = "[my_field_name]"
    sqlQuery = "SELECT [my_table].* " & _
                 " INTO new_table_name" & _
                 " FROM [my_table] " & _
                 " WHERE [some_field] = '" & value1 & "'" & _
                 " ORDER BY Rnd(-(100000*" & fieldName & ")*Time())"

    Debug.Print sqlQuery
    CurrentDb.Execute sqlQuery

我最终决定将这样的内容留给后端,并将可视化分析留给Tableau。