我想根据特定列中组的频率对条件进行过滤。例如:
给出表
tmp:([] id:`a`a`b`b`b`c; c2:1 2 3 4 5 6)
首先找到每组的频率
ce:count each group tmp[`id]
然后在tmp
中选择id
的群组数量超过1
的行
select from tmp where id in where ce > 1
id c2
a 1
a 2
b 3
b 4
b 5
(row id=`c is gone because it appeared only once)
怎样才能做得更优雅?
由于
答案 0 :(得分:3)
您可以使用fby例如
q)select from tmp where 1<(count;i) fby id
id c2
-----
a 1
a 2
b 3
b 4
b 5