SQLite - 根据总数的百分比进行选择



我有一个这样的查询:

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)

最新更新