ほとんどの場合、適切な解決策をすでに見つけているため、これが最初の投稿です:)
しかし、今回は適切に役立つものは何もないようです。
読み取り専用アクセスしかない mysql データベースから情報を移行しようとしています。
私の問題はこれに似ています:
Group by では最新のグループが得られません
一部のテーブルから最新の情報を取得する必要もありますが、テーブルには 300k を超えるエントリがあるため、"time-attribute-value" がサブクエリと同じように(最初の回答で提案されているように)遅すぎます(「... WHERE EXISTS ...」を実行してサーバーがハングアップした後)。
それに加えて、単一の属性で重要な情報 (時間など) を見つけることはほとんどなく、単一の主キーはありません。
これまで、最新の「time-attribute-entry」といくつかの主キーを含むサブクエリと結合することで、2番目の回答で提案されていたように実行しましたが、結果で複数の結合と結合を使用した後、非常に混乱します。
したがって、次のような having ステートメントを使用することを
お
勧めし
ます。多い = 39721、少ない = 37870)
SELECT COUNT(MATNR) AS MORE
FROM(
SELECT DISTINCT
LAB_MTKNR AS MATNR,
LAB_STG AS FACH,
LAB_STGNR AS STUDIENGANG
FROM
FKT_LAB
) AS TEMP1
SELECT COUNT(MATNR) AS LESS
FROM(
SELECT
LAB_MTKNR AS MATNR,
LAB_STG AS FACH,
LAB_STGNR AS STUDIENGANG,
LAB_PDATUM
FROM
FKT_LAB
GROUP BY
LAB_MTKNR,
LAB_STG,
LAB_STGNR
HAVING LAB_PDATUM = MAX(LAB_PDATUM)
)AS TEMP2
どちらも同じテーブルに適用され、同じエントリで「GROUP BY」/「SELECT DISTINCT」を使用しますが。
何か案は?
何も役に立たず、混乱に戻らなければならない場合は、文字列変数をプレースホルダーとして使用して整理しますが、1 つのクエリに含まれるサブクエリ、結合、およびユニオンの数の概要を失います... 一時テーブルはいくつになりますか?サーバーは対処できますか?