-1

次のようなテーブルがあります

 table   operation     employee
            '<'               id1
            '<'               id1
            '<'               id2
            '*'               id3
            '/'               id1

各操作について、どの従業員が最も多く行っているかを知りたいです。2番目はどの従業員ですか?

4

1 に答える 1

0

これを試して:

SELECT operations.operation, employees.employee, employees.rank
FROM (
  SELECT t1.operation
  FROM table t1
  GROUP BY t1.operation
) operations INNER JOIN (
  SELECT t2.employee, t2.operation, COUNT(1) rank
  FROM table t2
  GROUP BY t2.employee
) employees ON operations.operation = employees.operation
ORDER BY operations.operation, employees.rank DESC

すべての操作について、対応する各従業員の数を取得しています。操作はサブクエリの によりGROUP BY区別され、従業員はGROUP BY他のサブクエリの により区別されます。操作に関する 2 つのサブクエリを結合し、各従業員が操作に関連付けられた回数で並べ替えます。

于 2013-04-06T04:14:38.567 に答える