1

こんにちは、次のデータベース スキーマがあります。

employee (employee-name, street, city)
works (employee-name, company-name, salary)
company (company-name, city)
manages (employee-name, manager-name)

従業員数が最も少ない会社を見つけます。

私は次のクエリを書きましたが、私のトレーナーはそれが間違っていると言います。

SELECT company-name
FROM works
GROUP BY company-name
HAVING sum(salary) < ( SELECT sum(salary)
FROM works
GROUP BY company-name)
4

4 に答える 4

2

サブクエリ

SELECT company-name, sum(salary)
FROM works
GROUP BY company-name

は、各企業の累積給与 (給与) を提供します。
これらのデータを昇順で並べると、最初のレコードは給与額が最も小さい会社になります。

SELECT company-name, sum(salary)
FROM works
GROUP BY company-name
ORDER BY sum(salary)

MySQL のLIMIT句を使用して、そのレコードセットを 1 つのレコードだけに制限することができます。

SELECT company-name, sum(salary)
FROM works
GROUP BY company-name
ORDER BY sum(salary)
LIMIT 1
于 2013-03-22T10:43:27.063 に答える
1

さらにヒントを出します。これ<が問題です (サブクエリが何を返すかをよく考えてください)。

于 2013-03-22T10:38:07.023 に答える
0

< Allこの場合に使用できますか?

例:

SELECT company-name
FROM works
GROUP BY company-name
HAVING sum(salary) < ALL( SELECT sum(salary)
FROM works
GROUP BY company-name)
于 2015-01-09T07:16:03.667 に答える