如何从具有唯一列的表中获取行,由另一列决定

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可以看到一行以上的冷匹配项,以查看所有其他数据

以上是关于如何从具有唯一列的表中获取行,由另一列决定的主要内容,如果未能解决你的问题,请参考以下文章

根据由另一列分组的不同列的最大值获取值[重复]

如何获取 HIVE/PySpark 表中每一列的唯一值?

尝试使用 MySQL 创建具有同一表中另一列的季节至今平均值的列

从具有特定值的表中获取列名

SQL 选择由 Ids 标识并由另一个表中的特定类型过滤的行列表中的所有第一项

如何使用 Anylogic 中的插入数据库查询基于另一列获取一列的唯一值?