我有类似的数据
tableid name status uuid date
1 a none 1 2019-12-02
1 a none 2 2019-12-02
1 a done 4 2019-12-02
2 b none 6 2019-12-02
2 b done 7 2019-12-02
3 c none 8 2019-12-02
如果一个表有多行,我想选择状态已完成的那个表的行。如果任何表的状态不如“完成”,则要返回“无”。
tableid name status uuid date
1 a done 4 2019-12-02
2 b done 7 2019-12-02
3 c none 8 2019-12-02
最佳答案
SELECT
*
FROM
(
SELECT
ROW_NUMBER() OVER (PARTITION BY tableid ORDER BY status ASC) as RN,
tableid,
name,
status,
uuid,
date
FROM
SAMPLE
)T
WHERE T.RN =1;
检查此内容:http://sqlfiddle.com/#!17/562f6b/4
关于sql - 从多行中获取一行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59188342/