计算和加入表格

时间:2012-10-24 03:11:30

标签: mysql

我有两张桌子。一个是“探针”,另一个是“成绩单”。

探针表:“探测”

ProbeID ------- ---- TranscriptID

2655       4555555
2600       5454542
2600       4543234
2344       5659595

...等

成绩单表:“成绩单”

TranscriptID ---- ----位置

7896736      chr1
5454542      chr1

...等

我需要找出每条染色体有多少个转录本?每条染色体有多少个探针?

SELECT COUNT(*) 
FROM transcript

='28869'#Above我认为给我每条染色体的转录本(即位置)。

我需要帮助回答第二部分(首先,如果错误的话)。我假设我需要使用JOIN子句。

谢谢。

2 个答案:

答案 0 :(得分:0)

每个染色体的探测次数

SELECT Location, COUNT(ProbeID) AS ProbeCnt
FROM transcript T
JOIN probe P ON P.TransciprtID = T.TranscriptID
GROUP BY Location
-- optionally you can ORDER BY to either get
-- ORDER BY COUNT(ProbID) DESC  --  list in descending order of nb of probes
-- ORDER BY Location            --  list in order of chromosome name

关于您的第一个查询,这是不正确的。得到
每条染色体的转录本数,您需要

SELECT Location, COUNT(TranscriptID) as TransCnt
FROM transcript
GROUP BY Location

您当前的查询提供整个转录表的转录本总数,无论染色体如何。

答案 1 :(得分:0)

成绩单计数

select location, count(location) AS transacripts_num 
from transcript GROUP by location;

探测计数

select location, count(location) AS probe_num 
from transcript t join probe p
ON t.transcriptId= p.probeId
GROUP by location;