と仮定I持ってテーブルHASCO以下:SQLは、各IDに関連付けられている行数カウント、最大値を持つすべてのIDを選択する
+--------+--------+
|PID |numTours|
+--------+--------+
|1 |2 |
+--------+--------+
|2 |3 |
+--------+--------+
:
Table HASCO
+--------+------+-----+
|PID |Amount|Date |
+--------+------+-----+
|1 |1000 |Date1|
+--------+------+-----+
|1 |8000 |Date2|
+--------+------+-----+
|2 |8000 |Date3|
+--------+------+-----+
|2 |3000 |Date4|
+--------+------+-----+
|2 |4000 |Date5|
+--------+------+-----+
|3 |4000 |Date6|
+--------+------+-----+
は、私は次の結果を取得したいです
PID1とPID2の両方が最大量8000を持つ場合、PID1は2行、PID2は3行です。
私は、次のクエリを試してみました:
SELECT HASCO.PID, COUNT(*) AS numTour
FROM HASCO
GROUP BY HASCO.PID
HAVING HASCO.PID IN
(
SELECT HASCO.PID
FROM HASCO
WHERE HASCO.AMOUNT = (SELECT MAX(HASCO.AMOUNT) FROM HASCO)
これは、DB2上で動作しますが、それを行うには良い方法はありますか? Having
句で