例如,我有一个包含 2 列的表格。第一列具有唯一值,第二列重复。有什么办法可以让我只从与第二列相关的第一列中选择第一个唯一值?
例如:结果应该是:Apple、Tire 和 Fork,因为它们是第二列(类别)的第一个结果
详情 | 类别 |
---|---|
苹果 | 水果 |
香蕉 | 水果 |
轮胎 | 汽车 |
引擎 | 汽车 |
分叉 | 银器 |
勺子 | 银器 |
刀 | 银器 |
答案 0 :(得分:2)
SQL 表表示无序集合。除非列指定了值,否则没有“第一个”值。如果您有这样的列,那么您可以使用 row_number()
:
select t.*
from (select t.*,
row_number() over (partition by category order by <ordering col>) as seqnum
from t
) t
where seqnum = 1;
如果您没有这样的列,那么您根本无法在关系数据库中提出这样的问题。数据不支持该问题。
答案 1 :(得分:1)
如果我理解正确,试试这个 -
select category, details from ( select *, row number() over (partition by category order by details) as rn from tablename) where rn = 1