0

我有一个包含以下列的 mysql 表

SNP
Probe
Genotype_00
Mean_00
Std_00
Genotype_01
Mean_01
Std_01
Genotype_11
Mean_11
Std_11

我希望该表具有以下列:

SNP
Probe
Genotype
Mean 
Std

其中对于每一对 (SNP,Probe) 我有三行,一个对应于每个基因型。

例如行

rs1 probe1 AA 5.6 0.3 AG 4.3 0.2 GG 3.4 0.1

应该转化为

rs1 probe1 AA 5.6 0.3
rs1 probe1 AG 4.3 0.2
rs1 probe1 GG 3.4 0.1

谁能帮我找到一种方法来做到这一点?提前非常感谢,任何建议将不胜感激

罗塞拉

4

2 回答 2

1

使用跟随列创建表。

SNP
Probe
Genotype
Mean 
Std

然后一一执行这些SQL语句

INSERT INTO new_table
SELECT SNP, Probe, Genotype_00, Mean_00, Std_00
FROM old_table

INSERT INTO new_table
SELECT SNP, Probe, Genotype_01, Mean_00, Std_01
FROM old_table


INSERT INTO new_table
SELECT SNP, Probe, Genotype_11, Mean_00, Std_11
FROM old_table
于 2012-05-16T04:13:53.420 回答
0

您可以简单地使用 SNP Probe Genotype Mean Std 创建一个新表,然后使用

insert into NEWTABLE
select SNP, Probe, Genotype_00, Mean_00, Std_00
from old table

然后将 00 更改为 01 和 11,再次运行查询。

但是,由于 snp 对不会彼此相邻,您可能需要创建索引。

于 2012-05-16T04:13:59.837 回答