94 lines
3.4 KiB
SQL
94 lines
3.4 KiB
SQL
select * from iiabmdb.with_exp_result limit 0, 20;
|
||
select count(distinct s_id) from iiabmdb.with_exp_result;
|
||
select count(*) from iiabmdb.with_exp_sample;
|
||
|
||
select distinct s_id, id_firm, id_product from iiabmdb.with_exp_result order by s_id, id_firm, id_product;
|
||
|
||
select distinct s_id, count(distinct id_firm, id_product) as count_firm_prod from iiabmdb.with_exp_result group by s_id;
|
||
|
||
select distinct s_id, count(distinct id_firm, id_product) as count_firm_prod
|
||
from iiabmdb.with_exp_result group by s_id;
|
||
|
||
select distinct s_id,
|
||
count(distinct id_firm, id_product) as count_firm_prod,
|
||
count(distinct id_firm) as count_firm,
|
||
count(distinct id_product) as count_prod
|
||
from iiabmdb.with_exp_result group by s_id;
|
||
|
||
# 控制问题需要处理,否则最后 experiment avg出来的东西不对
|
||
# 1 2 3
|
||
select
|
||
idx_scenario,
|
||
sum(count_firm_prod) / count(*) as mean_count_firm_prod, # Note to use count(*), to include NULL
|
||
sum(count_firm) / count(*) as mean_count_firm,
|
||
sum(count_prod) / count(*) as mean_count_prod
|
||
from (
|
||
select sample.id, idx_scenario, count_firm_prod, count_firm, count_prod
|
||
from iiabmdb.with_exp_sample as sample
|
||
left join iiabmdb.with_exp_experiment as experiment
|
||
on sample.e_id = experiment.id
|
||
left join (select s_id,
|
||
count(distinct id_firm, id_product) as count_firm_prod,
|
||
count(distinct id_firm) as count_firm,
|
||
count(distinct id_product) as count_prod
|
||
from iiabmdb.with_exp_result group by s_id) as s_count
|
||
on sample.id = s_count.s_id) as secnario_count
|
||
group by idx_scenario;
|
||
|
||
# 4 5 6
|
||
select sample.id, idx_scenario, max_ts_firm_prod, max_ts_firm, max_ts_prod
|
||
from iiabmdb.with_exp_sample as sample
|
||
left join iiabmdb.with_exp_experiment as experiment
|
||
on sample.e_id = experiment.id
|
||
left join # firm prod
|
||
(select s_id, max(ts) as max_ts_firm_prod from
|
||
(select s_id, id_firm, id_product, min(ts) as ts
|
||
from iiabmdb.with_exp_result
|
||
where `status` = "D"
|
||
group by s_id, id_firm, id_product) as ts
|
||
group by s_id) as s_max_ts_firm_prod
|
||
on sample.id = s_max_ts_firm_prod.s_id
|
||
left join # firm
|
||
(select s_id, max(ts) as max_ts_firm from
|
||
(select s_id, id_firm, min(ts) as ts
|
||
from iiabmdb.with_exp_result
|
||
where `status` = "D"
|
||
group by s_id, id_firm) as ts
|
||
group by s_id) as s_max_ts_firm
|
||
on sample.id = s_max_ts_firm.s_id
|
||
left join # prod
|
||
(select s_id, max(ts) as max_ts_prod from
|
||
(select s_id, id_product, min(ts) as ts
|
||
from iiabmdb.with_exp_result
|
||
where `status` = "D"
|
||
group by s_id, id_product) as ts
|
||
group by s_id) as s_max_ts_prod
|
||
on sample.id = s_max_ts_prod.s_id;
|
||
|
||
# 7 8 9
|
||
select sample.id, idx_scenario, n_remove_firm_prod, n_all_prod_remove_firm, end_ts
|
||
from iiabmdb.with_exp_sample as sample
|
||
left join iiabmdb.with_exp_experiment as experiment
|
||
on sample.e_id = experiment.id
|
||
left join
|
||
(select s_id, count(distinct id_firm, id_product) as n_remove_firm_prod
|
||
from iiabmdb.with_exp_result
|
||
where `status` = "R"
|
||
group by s_id) as s_n_remove_firm_prod
|
||
on sample.id = s_n_remove_firm_prod.s_id
|
||
left join
|
||
(select s_id, count(distinct id_firm) as n_all_prod_remove_firm from
|
||
(select s_id, id_firm, count(distinct id_product) as n_remove_prod
|
||
from iiabmdb.with_exp_result
|
||
where `status` = "R"
|
||
group by s_id, id_firm) as s_n_remove_prod
|
||
left join iiabmdb_basic_info.firm_n_prod as firm_n_prod
|
||
on s_n_remove_prod.id_firm = firm_n_prod.code
|
||
where n_remove_prod = n_prod
|
||
group by s_id) as s_n_all_prod_remove_firm
|
||
on sample.id = s_n_all_prod_remove_firm.s_id
|
||
left join
|
||
(select s_id, max(ts) as end_ts
|
||
from iiabmdb.with_exp_result
|
||
group by s_id) as s_end_ts
|
||
on sample.id = s_end_ts.s_id; |