当社の mysql データベースは、化合物の倉庫保管と四半期ごとの更新を処理します。私たちは、最新の四半期ごとのアップロードにあるユニークな化合物、つまりこれまでに見られたことのない化合物 (ChemID) を見つけることに関心があります。
同様の質問/解決策を掘り下げて見つけた日付範囲を使用して、以下のコードをいくつか試しましたが、アプリケーションで機能させることができませんでした。これは、NULL を返すか、バリエーションがタイムアウトした (ChemCaseReports の 13M 行のように動作する) 試行 1 です。
真の最新 ImportDate
(datetime タイプ) は「2012-06-12 05:58:16」であることに注意してください。
試行 1:
SELECT DISTINCT ChemID
FROM Chem_CaseReports a
WHERE a.ImportDate = '2012-06-12 05:58:16'
AND NOT EXISTS
(
SELECT * FROM Chem_CaseReports b
WHERE a.ChemID = b.ChemID
AND b.ImportDate <= '2012-06-12 05:58:16'
)
サブクエリの * は、ChemID.a と .b の間のあいまいさを避けるために必要ですか? GROUP BY または HAVING 句を追加する必要がありますか、または最初の選択で GROUP_CONCAT のような集計引数を最初に指定します。
私は数学の学習障害を持っているので、問題は日付時刻で反転した gt、eq、または lt 記号と同じくらい簡単かもしれません。
ご協力いただきありがとうございます!