ここでの問題は、既存のクエリを変更していて、クエリで count(*) を使用できないことです。内部結合サブクエリを使用する必要があります。
内部結合に「変換」する必要があるのは次のようなものです(これは機能します):
SELECT count(distinct t1.id)
FROM table1 t1
WHERE t1.column1 = 'value1' AND
t2.column2 = 'value2' AND
EXISTS(select 1 from table2 t2 where t2.id = t1.id)
私のグローバルクエリは次のようになります。
SELECT [many many column]
FROM table2 t2
INNER JOIN [...]
LEFT OUTER JOIN [...]
--[I NEED MY COUNT HERE, see below for example]
WHERE [some conditions are true]
ORDER BY [some column]
私が私を助けるために見つけたのは、次のようなものです:
SELECT [many many column], myJoin.Count
FROM table2 t2
INNER JOIN (
SELECT tt2.id, count(distinct tt2.id) as Count
FROM table2 tt2
WHERE EXISTS (SELECT 1 FROM table1 tt1 where tt1.id = tt2.id)
GROUP BY tt2.id) myJoin
on t2.id = myJoin.id;
私が達成しようとしていることがわかりますか?2 つのテーブルを結合して ID をカウントする必要がありますが、メイン クエリにカウントを含めることはできません。それに伴うすべての「グループ化」条件をコピー アンド ペーストすることはできません。 SQLサーバー上。
答えが見つかったら、戻ってきて投稿します。これに関するアドバイス/トリックをありがとう。