「name」、「status」-fail または success、「counts」- 1 から 100 のテーブルがあります。「fail」のみの名前が一緒に上に表示され、次に同じ名前が表示されるように並べ替えたいと考えています。失敗と成功を一緒に、次に成功のみを一緒に名前を付けます。SQLクエリ言語を実行できますか? ありがとうございました。
2 に答える
3
わかりました、これはほとんどの RDBMS で動作するはずです:
SELECT A.*
FROM YourTable A
INNER JOIN (SELECT name,
COUNT(DISTINCT status) StatusCount,
MIN(status) MinStatus
FROM YourTable
GROUP BY name) B
ON A.name = B.name
ORDER BY CASE WHEN StatusCount = 1 AND MinStatus = 'fail' THEN 1
WHEN StatusCount = 2 THEN 2
ELSE 3 END, A.name, A.status
于 2013-02-28T13:25:10.800 に答える
0
MySQLなら
select *, 0 as o
from t
union all
select *, 1 as o
from t
order by
o = 1 and status != 'fail', o != 1, status = fail
于 2013-02-28T13:25:16.327 に答える