Iは、以下のクエリの代替クエリを必要 - カウント(t2.TransactionId)が適切な結果を与えていない上記のクエリではGroup-Byを使用してSQLクエリのパフォーマンスを向上させるにはどうすればよいですか? (クエリの性能向上のために)
;WITH products as (SELECT DISTINCT Id3 FROM Table1 WHERE id ='abcd-1234-adfasd')
SELECT t2.TransactionId ,count(t2.TransactionId)
FROM Table2 AS t2
inner JOIN products AS p ON (t2.Id3 = p.Id3)
WHERE ((t2.Id1 != 'ggg-bbbccc-ttt')
AND (t2.CreatedTime > '2016-10-12T12:21:37.5088739')AND (t2.CreatedTime <= '2016-10-12T12:23:17.7377845')) AND (t2.Id2=2)
GROUP BY t2.TransactionId
ORDER BY TransactionId
をし、そのため、私は交換しました下のサブクエリで -
SELECT t2.TransactionId ,(select count(1) from Table2 where TransactionId = t2.TransactionId) as trunacount
FROM Table2 AS t2
inner JOIN products AS p ON (t2.Id3 = p.Id3)
WHERE ((t2.Id1 != 'ggg-bbbccc-ttt')
AND (t2.CreatedTime > '2016-10-12T12:21:37.5088739')AND (t2.CreatedTime <= '2016-10-12T12:23:17.7377845')) AND (t2.Id2=2)
GROUP BY t2.TransactionId
ORDER BY TransactionId
上記のクエリは正しい結果を与えていますが、最初のクエリと比較して少し時間がかかります。ですから、私はTransactionIdのカウントをより短時間で取得できる方法が必要です。以下は
表2のテーブル構造(表2には、主キーが存在しない)である -