我正在使用mySQL和数据库主服务器,我无法为第二列的每个不同值获取一列的最小值。
我有一张桌子:
Gene_exon (varchar), Probe_ID (Varchar) PRIMARY KEY, DISTANCE(INT), START(INT), STOP(INT).
每个外显子有多个条目,这个外显子与不同探针之间的距离。
对于每个外显子,我想找到最小距离,对应的probe_ID,启动和停止。
当我指定一个外显子时,我可以得到正确的结果,但我希望每个外显子都有一个查询的正确结果!
任何想法?
提前致谢
修改 答对了!通过使用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;
答案 0 :(得分:2)
使用GROUP BY。诀窍是除了你得到min的那一列之外的每一列都在GROUP BY:
SELECT a,b,c, min(d)
FROM myTable
GROUP BY a,b,c
ORDER BY a,b,c