2

我正在使用 mySQL 和数据库主服务器,我无法为第二列的每个不同值获取一列的最小值。

我有一张桌子:

Gene_exon (varchar), Probe_ID (Varchar) PRIMARY KEY, DISTANCE(INT), START(INT), STOP(INT).

每个外显子有多个条目,以及该外显子与不同探针之间的距离。

对于每个外显子,我想找到min distance以及相应的 probe_ID、start 和 stop

当我指定一个外显子时,我可以获得正确的结果,但我希望通过一个查询为每个外显子提供正确的结果!

有任何想法吗?

提前致谢

编辑: 宾果!通过使用 group by 和下面的代码,我设法找到了我想要的。每个外显子的最小距离,其中包含所有正确信息:

SELECT gene_exon,probe_id, distance_before_EXON_START, start, stop
FROM probe_location a
WHERE distance_before_EXON_START>0 and NOT EXISTS (SELECT * FROM probe_location B
WHERE distance_before_EXON_START>0 and A.distance_before_EXON_START>b.distance_before_EXON_START AND a.gene_exon = b.gene_exon)
GROUP BY gene_exon, probe_id, start, stop;
4

1 回答 1

3

使用 GROUP BY。诀窍是除了你得到最小值的那一列之外的每一列都在 GROUP BY 中:

SELECT a,b,c, min(d)
FROM myTable
GROUP BY a,b,c
ORDER BY a,b,c
于 2013-10-01T19:32:51.067 回答