如何从一列中的不同值采样而仅返回另一列中唯一的记录?

西亚兰·谢兰(Ciaran Sheelan)

我正在使用Teradata解决抽样问题

以下是数据格式

ID    Group     Rank
1     dog       1 
1     cat       1 
1     lion      1  
1     elephant  2 
2     dog       1 
2     cat       1 
2     lion      1 
2     elephant  1 
3     dog       1
3     cat       2 
3     lion      1 
3     elephant  1 
4     dog       2 
4     cat       1 
4     lion      1 
4     elephant  1 
... 

理想情况下,我想为组中的每个条目返回一个样本号,但ID中的值必须唯一。

以下是我产生的当前查询,但这返回ID的重复项

SELECT ID, Group FROM Table 
WHERE rank = 1 
SAMPLE 
 WHEN group = 'dog' then 10
 WHEN group = 'cat' then 10
 WHEN group = 'elephant' then 5
 WHEN group = 'lion' then 5
END
牙齿
with cte as
 (
   SELECT ID, Group,
      random(1,10000) as rnd -- RANDOM can't be directly used in OLAP-functions
   FROM Table 
   WHERE rank = 1 
 )
SELECT ID, Group
FROM cte
QUALIFY 
   ROW_NUMBER() -- get one random row per ID
   OVER (PARTITION BY ID 
         ORDER BY rnd) = 1
SAMPLE 
 WHEN group = 'dog' then 10
 WHEN group = 'cat' then 10
 WHEN group = 'elephant' then 5
 WHEN group = 'lion' then 5
END

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何根据另一列的不同值从一列中获取值?

从一列中仅选择不同的值

计算一列中的不同记录,另一列中的多个值

在熊猫中,如何从一列中的唯一值中创建列,然后根据另一列中的值填充它?

如何根据另一列的特定值从一列中删除NaN

根据另一列中的唯一值汇总一列中的值

一列中的值的平均值,另一列中的唯一值

根据另一列中的重复值过滤一列中的唯一值

DAX的一列中仅唯一值的总和

从另一列创建一列列表,并在 Pandas 数据框中仅显示唯一值

从一列的列值中列出,然后过滤另一列的值

在 Pandas 中创建一列,计算另一列中唯一值的数量

根据另一列中的唯一值查找一列中的重复项

如何根据另一列中的唯一值对一列中的值进行分组?

从一列中删除与另一列中的值相等的值

根据另一列中的最大值从一列中选择不同的值

如何使一列根据另一列中的日期返回期望值?

MySQL:仅当另一列中的值唯一时才设置值

如何从R中的两个不同数据帧中添加两列,其中一列只是另一列的唯一值的子集

如何检查R中另一列的不同值是否多次出现列的唯一值?

将值从一列插入同一表中的另一列

Python pandas - 为另一列中的每个不同值显示一列中记录数最多的值

SQL:仅当在同一行中另一列具有不同的值时,才返回一列的值

如何替换一列中的重复值以使其基于Pandas中的另一列而唯一?

PowerBI:根据另一列中的不同值计算一列中的不同值

基于另一列的一列中唯一值的计数

Pandas 基于另一列 python 获取一列中的唯一值

如何基于一列对df重新采样并从另一列中添加值?

SQL根据另一列中的值从一列中选择值