如何从具有唯一列的表中获取行,由另一列决定
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从具有唯一列的表中获取行,由另一列决定相关的知识,希望对你有一定的参考价值。
很难解释,所以我制作了一个样本数据集:
CREATE TABLE sample_table (a_id INT, number INT, other_data VARCHAR(20));
INSERT INTO sample_table VALUES
(1, 2, "other text"),
(1, 3, "other text 2"),
(1, 4, "other text 3"),
(2, 5, "other text 4"),
(2, 6, "other text 5"),
(3, 7, "other text 6"),
(4, 8, "other text 7"),
(4, 4, "other text 8");
SQL提琴数据-http://sqlfiddle.com/#!9/a73d69/2
我想做的是过滤表,以便a_id
列中没有重复项。至于选择哪个特定行,我想要number
最大的行。因此,在该示例表中,从顶部开始向下计数,将是第3、5、6和7行。
我已经尝试过“ GROUP BY”和“ DISTINCT”,但是到目前为止,没有任何东西可以100%正确地返回。
答案
这是每组排名前n的问题。常见的解决方案是使用相关子查询进行过滤:
另一答案
这将只给您一个唯一的a_id和数字的结果,但是我添加GROUP_CONCAT可以看到一行以上的冷匹配项,以查看所有其他数据
以上是关于如何从具有唯一列的表中获取行,由另一列决定的主要内容,如果未能解决你的问题,请参考以下文章
尝试使用 MySQL 创建具有同一表中另一列的季节至今平均值的列