Я делаю статистическую работу так:
SUM |COND1 |COND2 |...
--------------------------
100 |80 | 70 |...
Результат SUM рассчитывается по нескольким таблицам, и COND являются его подмножеством.
Я написал sql так:
select tmp1.id,sum,cond1,cond2 from (
select id, count(*) as sum from table1
group by table1.id) tmp1
left join (
select id, count(*) as cond1 from table1
where condition1
group by table1.id) tmp2 on tmp1.id=tmp2.id
left join (
select id, count(*) as cond2 from table1
where condition2
group by table1.id) tmp3 on tmp1.id=tmp3.id
проблема в том, что это очень низкая эффективность, было бы лучше, если бы я мог использовать результат tmp1, но я не знаю, как это сделать.
обновление: упрощен SQL,
первый подзапрос в этом случае:
select id, count(*) as sum from table1
group by table1.id) tmp1
упрощен, реальный - довольно сложный запрос,
я имею в виду, как повторно использовать этот вложенный результат выбора, когда я вычисляю cond1 и cond2.