データを先に抽出していましたが、結果が多すぎて使用できませんでした(400万行以上が返されました)。私は、犯人が多数のIDを持つ数え切れないほどの数であることを発見しました。IDが存在する行の数に基づいてSQLクエリから行を除外します
データの構造を強調します。私は2つのテーブルを持っています。 tbl1には、すべてのATID(ATIDは基本的に縮尺ID)のレコードが1つあります。各ATIDは本質的に独自のテーブルですが、スケール上のすべてのアイテムのレコードがあります。 tbl2はそれらのアイテムを列挙します - それはATIDごとのスケール項目ごとに行を持っています。したがって、各ATIDには1〜50万行のどこかがあります(私は知っていますが、余計なことがあります)。
100行を超えるATIDを除外したいと思います。 FYIこれは私が読み取り専用アクセス権を持っているデータベースです。私が好きな私の最終製品について
select ATID, count(*) as row_count
from tbl2
group by ATID
order by row_count desc;
:
SELECT tbl1.ATID, tbl1.ATDesc, tbl2.AValue, tbl2.ADesc, tbl2.APosNeg
FROM tbl1 LEFT OUTER JOIN tbl2 ON (tb1.ATID = tbl2.ATID);
ここで私はATIDあたりTBL2にATIDsとレコード数のリストを取得するために使用クエリがあります:
はここに私の元のクエリですtbl2で100行未満のATIDのみを返すようにします。しかし、row_count変数を使用して2番目のクエリにWHERE句を追加しようとしても失敗します。だから私は2つのクエリを結合してWHERE句を取得する方法にもわからない。
私が唯一の選択肢は、レコードが多すぎることを知っているときにATIDを除外することだが、 (すなわち、等.... WHERE = 1016 ATID NOT AND = 554をATID AND NOT NOTを使用)あなたはすでにそれをやった
サブクエリの実行方法は分かりますか? –