maxDateを含むテーブルのidフィールドに関連する必要があるため、このクエリをOVER(PARTITION BY ...)で最適化しようとすると問題が発生します。もう一つのテーブル。他のテーブルエンティティに関連するMAXの日付クエリをoptmizeするには
作業クエリは次のとおりです。
SELECT maxReadDate, Equip.idProtocol
FROM Equip,
(
SELECT idEquip as idEquipTot, MAX(readDate) AS maxReadDate
FROM Totalizer
WHERE Totalizer.idEquip = xxx
GROUP BY idEquip
)
WHERE Equip.idEquip = idEquipTot
私がやろうとしていますどのようなものに近いものですが、それはうまくいきませんでした:
SELECT maxReadDate, Equip.idProtocol
FROM Equip,
(
SELECT idEquip as idEquipTot, MAX(readDate) OVER (PARTITION BY idEquip) maxReadDate
FROM Totalizer
)
WHERE Equip.idEquip = idEquipTot
AND Equip.lastReadDate = maxReadDate
AND idEquipoTot = xxx
感謝。
ソリューション:
SELECT DISTINCT e.idProtocol, e.idEquip, MAX(t.readDate)
OVER (PARTITION BY e.idEquip) maxReadDate
FROM Equip e
JOIN Totalizer t
ON t.idEquip = e.idEquip
WHERE e.idEquip = ?
はあなたには、いくつかのサンプルデータを提供してもらえグループ化使用していないと、結果セットはあなたが取得したいのですが? – Quassnoi