我有一个这样的查询:
SELECT id FROM my_table
WHERE ip IN (SELECT ip FROM my_table WHERE id IN (1, 2, 3, 4))
GROUP BY id
HAVING SUM(count) >= 10
与其硬编码它以要求 sum(count)>= 10,我希望它的总和 (count) 是该 id 的计数列总和的>= 10%(即没有"WHERE ip in ..."约束)
在这样的查询中这可能吗?
您可以编写一个子查询来获取 10%:
SELECT id FROM my_table
WHERE ip IN (SELECT ip FROM my_table WHERE id IN (1, 2, 3, 4))
GROUP BY id
HAVING SUM(count) >= (SELECT 0.1 * SUM(t.count) FROM my_table t WHERE t.id = my_table.id)