SQL:由未知出现次数限制

时间:2014-04-09 10:20:23

标签: sql

拥有一个SQL表,列id和类型一致。我想在不使用WHERE的情况下仅选择一种类型的第一次出现,因为我不知道哪些类型是野生的,而且没有LIMIT因为我不知道有多少类型。

id | type
---------
1  | 1 
2  | 1 
3  | 2 
4  | 2 
5  | 2

E.g:

  

SELECT id FROM table ORDER BY type(+?)应该只返回id 1和2

     

SELECT id FROM FROM ORDER BY类型DESC(+?)应该只返回id 3,4和5

可以通过标准和简单的SQL运算符实现吗?

1 个答案:

答案 0 :(得分:0)

这很容易。您必须使用where子句并评估其中的最小类型。

SELECT * 
FROM mytable
WHERE type = (select min(type) from mytable) 
ORDER BY id;

编辑:如果您想获得最大类型记录,请使用max()。

编辑:如果类型不是如您的示例中那样提升,则必须获取最小/最大ID的类型,而不是获取最小/最大类型:

SELECT * 
FROM mytable
WHERE type = (select type from mytable where id = (select min(id) from mytable)) 
ORDER BY id;