1

これは私のデータベースプロジェクトです。

テーブルuser_

select id, name from user_;

 id |   name
----+----------
  1 | bartek
  2 | bartek_m
  3 | bartek_k
  4 | bartek_b

テーブルorder_

select id, employee_id, user_id from order_;

 id | employee_id | user_id
----+-------------+---------
  1 |           3 |       1
  2 |           4 |       1
  3 |           4 |       1
  4 |           4 |       1
  5 |           3 |       1

すべてのユーザーにロールがあります(ここにテーブルrole_を追加しませんが、存在します)。ロールemployeeを持つすべてのユーザーのIDをorder_.employee_idに割り当てることができます最小注文数のユーザーを取得する必要があります

select a.id, min(a.count) from (
    select u.id, count(u.id) from user_ u, order_ o
    where u.id = o.employee_id
    group by u.id
) as a group by a.id, a.count

 id | min
----+-----
  4 |   3
  3 |   2

私の質問は間違っていると思います。注文数が最小のこのユーザーのIDのみを返すようにクエリを変更できますか?

4

1 に答える 1

1

好き

SELECT u.id, count(*)
FROM user_ AS u JOIN order_ AS o ON (u.id=o.employee_id)
GROUP BY u.id
ORDER BY 2 LIMIT 1

(私があなたを正しく読んだら)?

于 2012-11-04T20:36:35.007 に答える