请查看以下查询。
SELECT `p_id`, COUNT(`p_id`) AS OverlapWords, `UniqueWordCount`,
(COUNT(`p_id`)/`UniqueWordCount`) AS SimScore FROM `key_uniqueword` WHERE `word` IN
('stand','on') GROUP BY (`p_id`) LIMIT 500
我需要将SimScore
转换为百分比,并获取SimScore
小于90%的所有记录。我怎么能在SQL中这样做?上次当我这样做时,它给我一个像Invalid use of Group function
答案 0 :(得分:1)
你试过这个吗?
SELECT `p_id`, COUNT(`p_id`) AS OverlapWords, `UniqueWordCount`,
(COUNT(`p_id`)/`UniqueWordCount`) AS SimScore
FROM `key_uniqueword`
WHERE `word` IN ('stand','on')
GROUP BY (`p_id`)
HAVING SimScore < 0.9
LIMIT 500;
聚合函数结果的条件属于having
子句,而不是where
子句。