2
WARNING空のセットを返すHAVING句の後に:私はthis質問の承知しています - 私は私のクエリでGROUP BY
句を追加し、それはまだ動作していないので、それは私のようなませです。集計関数
一時的な列の最大値を選択する必要があります。project_count
。
これはクエリです:
SELECT employee_id, COUNT(*) AS project_count FROM Employees WHERE project_level = 'L1' AND YEAR(Employees.project_date) = '2017' GROUP BY employee_id HAVING project_count = MAX(project_count);
私はHAVING
句を削除した場合、出力は次のようなものです:
+-------------+---------------+
| employee_id | project_count |
+-------------+---------------+
| 1 | 2 |
| 2 | 1 |
| 3 | 3 |
| 5 | 1 |
+-------------+---------------+
しかし、私は私がする必要があるHAVING
句を(含まれている場合最大値がproject_count
であることを知るために使用します)、出力は空のセットです。それは、次のようにする必要があります:
+-------------+---------------+
| employee_id | project_count |
+-------------+---------------+
| 3 | 3 |
+-------------+---------------+
http://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to-be-a-very-simple- sql-query – Strawberry
グループ化には2つの「レイヤー」がありますが、グループ化は1つのみです。 MAX(project_count)はemployee_idでグループ化されたMAX(COUNT(*))と同じであることに注意してください。私はMySQLがクエリを拒否しなかったことに驚いています。それを受け入れたときには、すべての行の代わりに行を返さないことにしました。 – Uueerdo