SELECT 使用 INNER JOIN 计算增量和过滤结果

SELECT with INNER JOIN to count delta and filter results

我正在尝试 select 来自 table B 的所有行具有相同的 id 并计算来自 table [=14] 的 count 值的增量=] 和行数 select 像这样从 B 编辑:

SELECT A.id, 
       A.count, 
       count(*) AS counter, 
       CAST(count(*) AS SIGNED) - CAST(A.count AS SIGNED) AS delta 
FROM table_A AS A 
INNER JOIN table_B AS B ON B.id = A.id 
GROUP BY A.id

现在我已经计算了 delta,但无法过滤 delta > 0 的结果 我试过在各处放置 HAVING delta > 0WHERE delta > 0,但没有成功。看起来我在查询中遗漏了一些范围。

这是你想要的吗?

SELECT
    a.id, 
    a.count, 
    COUNT(*) AS counter
FROM cdb_A a
INNER JOIN db_B AS B
    ON b.id = a.id
GROUP BY
    a.id
HAVING
    COUNT(*) > a.count;

尝试使用这个查询

SELECT * FROM (SELECT A.id, 
   A.count, 
   count(1) AS counter, 
   CAST(count(1) AS SIGNED) - CAST(A.count AS SIGNED) AS delta 
FROM table_A AS A 
INNER JOIN table_B AS B ON B.id = A.id 
GROUP BY A.id) as t where delta > 0