This query is maintain below table
SELECT A.XXX as XXX,B.total_result as total_cost
FROM TABLE as A
LEFT JOIN
(
SELECT XXX,sum(`click`)*price as total_result
FROM TABLE
WHERE main_id = '1' AND (DATE(`click_time`) BETWEEN '2017-11-01' AND '2017-11-30' OR `click_time` IS NULL)
GROUP BY XXX,price
) B ON B.`XXX` = A.`XXX`
where B.click IS NOT NULL
GROUP BY A.XXX
LIMIT 0,20
Table
k_id main_id XXX click price click_time
1 1 aaa 1 0.25 2017-11-05
2 1 bbb 1 0.36 2017-11-05
3 1 bbb 1 0.45 2017-11-05
4 1 aaa 1 0.36 2017-11-05
5 1 ccc 1 0.98 2017-11-05
6 1 bbb 1 0.55 2017-11-05
7 1 aaa 1 0.25 2017-11-05
8 1 ccc 1 0.98 2017-11-05
9 1 aaa 1 0.25 2017-11-05
10 1 bbb 1 0.45 2017-11-05
I want to this query modify working this table of large dataset