単純な左結合クエリを使用して、2 つの別々のテーブルから 2 行のデータを取得しています。どちらも名前付きの共通の列を保持しdomain
ており、この列でそれらを結合して、1 つのテーブルの訪問数と他のテーブルの収益に基づいて値を計算します。
SELECT t1.`domain` AS `domain`,
(SUM(earnings)/SUM(visits)) AS `rpv`
FROM hat_adsense_stats t1
LEFT JOIN hat_analytics_stats t4 ON t4.`domain`=t1.`domain`
WHERE(t1.`hat_analytics_id`='91' OR t1.`hat_analytics_id`='92')
AND t1.`date`>='2013-02-18'
AND t4.`date`>='2013-02-18'
GROUP BY t1.`domain`
ORDER BY rpv DESC
LIMIT 10;
これは私が実行したクエリで、実行に 9.060 秒かかります。
hat_adsense_stats
テーブルには 60887 レコードが含まれていますhat_analytics_stats
テーブルには 190780 レコードが含まれています
しかし、グループ化するdomain
と、比較が必要な 186 行のデータが返されます。
非効率的なコードまたはこれを解決するためのより良い方法に関する提案をいただければ幸いです。