0

我有一张有一大堆行的桌子。为简单起见,我们将说每一行属于类别 A、B、C 或 D。这些行还具有重要、不重要或无聊的值。我想排序,如果一个类别包含任何重要的值,那么该类别中的所有值都排在第一位,重要的行排在第一位。它看起来像:

A -重要

A -重要

A - 不重要

C -重要

C - 无聊

B - 无聊

B - 无聊

D - 不重要

D - 无聊

4

1 回答 1

2
SELECT my_table.* FROM my_table JOIN (
  SELECT   Category, SUM(Importance='Important') number_important
  FROM     my_table
  GROUP BY Category
) t USING (Category) ORDER BY t.number_important DESC, Category, Importance

sqlfiddle上查看。

于 2013-07-23T21:20:43.803 回答