SQL - 选择特定结果

时间:2021-01-13 00:24:05

标签: sql select

例如,我有一个包含 2 列的表格。第一列具有唯一值,第二列重复。有什么办法可以让我只从与第二列相关的第一列中选​​择第一个唯一值?

例如:结果应该是:Apple、Tire 和 Fork,因为它们是第二列(类别)的第一个结果

<头>
详情 类别
苹果 水果
香蕉 水果
轮胎 汽车
引擎 汽车
分叉 银器
勺子 银器
银器

2 个答案:

答案 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

相关问题