この単純なクエリを機能させることはできません。
SELECT * FROM
(SELECT h.*, h.NewValue AS STATUS,
(SELECT h2.CreatedDate
FROM siebel_service_request_history h2
WHERE h2.Field = 'Status' AND h2.CreatedDate > h.CreatedDate AND
h2.SiebelID = h.SiebelID
ORDER BY h2.CreatedDate
LIMIT 1
) AS nextCreatedDate
FROM siebel_service_request_history h WHERE h.Field ='Status') h
GROUP BY h.SiebelID, h.Status
grouping by で問題なく動作しSiebelID
(ただし遅い)、 grouping by を追加すると、永遠にハングしStatus
ます。ただし、必要なデータを取得するには、グループ化に含まれる両方のフィールドが必要です。
salesforce_case_history テーブルに対してまったく同じクエリが実行され、機能しています (非常に高速に実行され、正確には、両方のテーブルにほぼ同じ数のレコードがあります (salesforce_case_history - -- 1159870 レコード VS siebel_service_request_history – 1202865 レコード)):
SELECT * FROM (SELECT h.*, h.NewValue AS STATUS,
(SELECT h2.CreatedDate
FROM salesforce_case_history h2
WHERE h2.Field = 'Status' AND h2.CreatedDate > h.CreatedDate AND
h2.CaseId = h.CaseId
ORDER BY h2.CreatedDate
LIMIT 1
) AS nextCreatedDate
FROM salesforce_case_history h WHERE h.Field ='Status'
) h
GROUP BY h.CaseId, h.Status
また、salesforce_case_history で作成したのと同じ複合インデックスを、3 つのフィールド ( 、、 ) テーブルsiebel_service_request_history
を含む内部サブセレクト検索用に作成しました。私たちは知っていることのほとんどすべてを試しましたが、残念ながら、この問題の根本的な問題を突き止めることはできませんでした.SiebelID
CreatedDate
Field