我有以下示例数据集,如您所见,X 列是班级 ID,Y 列是每个班级名称,最后 Z 列是用于每个学科的其他大学班级 ID。目标是通过 X 分组获得 X 和 Z,并获得 Z(其他大学)使用的最常用 ID。
表 1:
| X | 是 | Z |
|---|---|---|
| 123 | 22 | 122 |
| 123 | 22 | 123 |
| 123 | 22 | 122 |
| 256 | 21 | 256 |
| 256 | 21 | 255 |
| 341 | 33 | 400 |
| 341 | 33 | 400 |
结果应该是:
| X | Z |
|---|---|
| 123 | 122 |
| 256 | 255 |
| 341 | 400 |
我尝试通过添加以下查询,但它只返回所有表中的最大值,而不仅仅是 Z 列中的每个值。
SELECT Sheet1.X, Sheet1.Z
FROM Sheet1
GROUP BY Sheet1.X, Sheet1.Z
HAVING COUNT(Sheet1.Z) =
(SELECT MAX(sheet2.count) FROM
(SELECT Sheet1.X, Sheet1.Z, COUNT(Sheet1.Z) AS count
FROM Sheet1
GROUP BY Sheet1.X, Sheet1.Z) as sheet2);
关于我做错了什么的任何建议?