如何编写SQL命令来排序多行

时间:2014-09-01 02:17:06

标签: sql sqlite row

我有一张表格如下:


col1         col2        col3      col4
---------------------------------------
B1           01          ABC        001
B1           02          ABC        001
B1           03          ABC        001
B1           04          ABC        002
B1           05          ABC        002
B1           06          ABC        003
B1           07          ABC        003
B1           08          ABC        004
B1           09          ABC        004
B1           01          DEF        001
B1           02          DEF        001
B1           03          DEF        002
B1           04          DEF        002
B1           05          DEF        002
B1           06          DEF        003
B1           07          DEF        004
B1           08          DEF        004
B1           09          DEF        004

我想要的是过滤表。对于每个不同的col3值,它应该具有来自col4的不同元素,并且必须由col2选择的那些元素应该是col2的最小值。让我表达我想要的东西:

 col1         col2        col3      col4
---------------------------------------
B1           01          ABC        001
B1           04          ABC        002
B1           06          ABC        003
B1           08          ABC        004
B1           01          DEF        001
B1           03          DEF        002
B1           06          DEF        003
B1           07          DEF        004

有没有办法在SQL中实现这个?顺便说一下,我正在使用SQLite。我不想编写Java代码来迭代查询结果的每一行。

1 个答案:

答案 0 :(得分:1)

select col1, min(col2), col3, col4
from mytable
group by col1, col3, col4
order by col1, col3, col4