【发布时间】:2013-07-11 16:59:57
【问题描述】:
我在results 表中有以下数据:
什么样的SELECT 语句可以让我从结果表中获得最高的 5 个值?
【问题讨论】:
标签: mysql distinct-values highest
我在results 表中有以下数据:
什么样的SELECT 语句可以让我从结果表中获得最高的 5 个值?
【问题讨论】:
标签: mysql distinct-values highest
什么样的
SELECT语句可以让我从结果表中获得最高的 5 个值?
每列都被同等对待这一事实表明您的架构是非规范化的。如果对数据进行规范化,从而合并列(但会创建一个额外的列来指示每条记录源自哪一列),则此操作将大大简化。
但是,就目前而言,您可以使用UNION:
(SELECT A col FROM results ORDER BY col DESC LIMIT 5)
UNION ALL
(SELECT B col FROM results ORDER BY col DESC LIMIT 5)
UNION ALL
(SELECT C col FROM results ORDER BY col DESC LIMIT 5)
UNION ALL
(SELECT D col FROM results ORDER BY col DESC LIMIT 5)
UNION ALL
(SELECT E col FROM results ORDER BY col DESC LIMIT 5)
UNION ALL
(SELECT F col FROM results ORDER BY col DESC LIMIT 5)
ORDER BY col DESC
LIMIT 5
在sqlfiddle 上查看。
【讨论】: