Mysql 按两列分组统计记录

Mysql 按两列分组统计记录,mysql,sql,Mysql,Sql,我试图计算每个fk_id有多少个amount变量。如果存在多个变体,则我希望返回该记录,否则我希望忽略该记录 下面的陈述有什么错 SELECT *, count(fk_id) AS `count` FROM table WHERE count > 1 GROUP BY fk_id, amount; 表: +-----------+----------+--------------+ | id | fk_id | amount | +-----------+

我试图计算每个
fk_id
有多少个
amount
变量。如果存在多个变体,则我希望返回该记录,否则我希望忽略该记录

下面的陈述有什么错

SELECT *, count(fk_id) AS `count` FROM table
WHERE count > 1
GROUP BY fk_id, amount;
表:

+-----------+----------+--------------+
| id        | fk_id    | amount       |
+-----------+----------+--------------+
|         1 | 100      | 5            |
|         2 | 200      | 10           |
|         3 | 200      | 10           |
|         4 | 200      | 10           |
|         5 | 200      | 15           |
+-----------+----------+--------------+
预期产出:

+-----------+----------+--------------+--------------+
| id        | fk_id    | amount       | count        |
+-----------+----------+--------------+--------------+
|         2 | 200      | 10           | 2            |
+-----------+----------+--------------+--------------+

不能在
WHERE
子句中使用聚合函数。改用
HAVING
子句:

SELECT MIN(id) as id,fk_id,amount, count(fk_id)-1 AS `count` 
FROM table
GROUP BY fk_id, amount
HAVING count(fk_id)>1
结果:

ID  FK_ID   AMOUNT  COUNT
2   200     10      2
请参阅中的结果