私はオペレータのために、このテーブルを持っている:行の選択最も
+--------------------------------+
| ProviderID | ProviderName |
+---------------+----------------+
| 1 | Movistar |
+---------------+----------------+
| 2 | Vadafone |
+---------------+----------------+
| 3 | Orange |
+---------------+----------------+
そしてまた、私は、これらの事業者が提供する計画のこのテーブルを持っています。
+--------------------------------+
| PlanID | ProviderID |
+---------------+----------------+
| 1 | 2 |
+---------------+----------------+
| 2 | 2 |
+---------------+----------------+
| 3 | 2 |
+---------------+----------------+
| 4 | 1 |
+---------------+----------------+
| 5 | 3 |
+---------------+----------------+
私は、最も多くのプランを持つプロバイダだけを印刷したいと思います。これは私がこれまで持っているものです。
SELECT O.ProviderId, COUNT(Pl.ProviderId) as numberOfPlans
FROM Plan Pl
INNER JOIN Provider O ON O.ProviderId= P.ProviderId
GROUP BY O.ProviderName
そして、これがすべてのプロバイダ名と私はほとんどの計画を持っているものを印刷する必要がありながら、彼らが持っているプランの数を表示しますので、この場合には、それが唯一のVadafoneだろう3つの計画があります。 (他のプロバイダがプランの最大値を持っていれば、同様に印刷されます)。 ご迷惑をおかけして申し訳ございませんが、問題をどのように指定するべきか正確には分かりませんでした。
私はどこかでMAX()関数を使うべきだと思っていますが、どこで分かりません。 – enigmq