如果我有两列功能和feature_value的数据,就像下面的示例数据集
feature feature_value
X 1
X 1
X 2
Y 7
Y 8
Y 9
Z 100
我希望只获得功能少于3个不同值的功能的feature_value列(在这种情况下只有具有X和Z的列),这样做的有效方法是什么?使用Count(Distinct)并应用where条件还是有更快的方法?
答案 0 :(得分:0)
请注意,此答案使用通用SQL,因为您的问题并不清楚为什么您只能获得" X"和" Y"记录当你想要那些出现在3或更低的那些时,我也可以自由地理解你的答案意味着你只需要查看feature
在feature
中出现的次数少于3次{1}}列,根据您的问题说明您正在寻找&#34;列[sic]以获取少于3个不同值的要素。&#34;如果您的意思是 3或更多,则可以通过将<
更改为>=
来轻松调整以下子查询中的内容。
查询GROUP BY
feature
并获取计数,然后只选择那些记录。
SELECT * FROM my WHERE feature IN
(SELECT feature
FROM my
GROUP BY feature
HAVING COUNT(*) < 3)
;