【发布时间】:2019-05-06 19:46:18
【问题描述】:
我想用 order by 获取重复的行,我正在尝试这种方式:
SELECT utc_id, utc_utiid, utc_comid, utc_recomendacoes FROM
( SELECT * FROM utilizador_competencia ORDER BY utc_recomendacoes DESC)
as sub GROUP BY utc_utiid, utc_comid HAVING COUNT(*) > 1
结果:
+--------+-----------+-----------+-------------------+
| utc_id | utc_utiid | utc_comid | utc_recomendacoes |
+--------+-----------+-----------+-------------------+
| 14 | 2 | 397 | 54 |
+--------+-----------+-----------+-------------------+
这里是重复行,但我想获取 utc_id -> 207 而不是 utc_ic -> 14:
+--------+-----------+-----------+-------------------+
| utc_id | utc_utiid | utc_comid | utc_recomendacoes |
+--------+-----------+-----------+-------------------+
| 14 | 2 | 397 | 54 |
| 207 | 2 | 397 | 87 |
+--------+-----------+-----------+-------------------+
【问题讨论】:
-
您不能在子查询中使用 ORDER BY。你必须在外面使用它。
-
我认为您的子查询中不能有 ORDER BY。加上 ORDER BY 不会做任何事情来消除重复。您可能只需完全删除 ORDER BY 即可获得所需的内容。但我不知道无论如何都需要这个子查询。这个查询会抛出什么错误?
-
这是什么意思:“我想用 order by 获取重复的行,我正在尝试这种方式”?样本数据和期望的结果真的很有帮助。
-
@GordonLinoff 我已经更新了问题。
-
为什么你更喜欢 207 而不是 14?也许你想要
MAX()?查看添加的标签。
标签: mysql sql mariadb greatest-n-per-group