哪个元素按秒出现频率最高table

Which element is the most frecuent according to a second table

我有两个表,

phenotipos

id
GTEX-1117F
GTEX-ZE9C
K-562

atributos

SAMPID
K-562-SM-26GMQ
K-562-SM-2AXTU
GTEX-1117F-0003-SM-58Q7G
GTEX-ZE9C-0006-SM-4WKG2
GTEX-ZE9C-0008-SM-4E3K6
GTEX-ZE9C-0011-R11a-SM-4WKGG

我需要知道 fenotipos 中的每个元素出现在 atributos 中的次数 我试图离开连接,但它不起作用,因为 id 与 de SAMPID 不相同,并且因为 id 每次我都没有相同数量的字符可以 trim SAMPID(distinct left (SAMPID,x)

您可以使用相关子查询字符串函数来计算每个表型开头的属性数量:

select p.*,
    (select count(*) from atributos a where a.sampid like concat(p.id, '%')) as cnt
from phenotipos p

您可以加​​入 like 条件,然后按 id 和计数分组:

SELECT   p.id, COUNT(*)
FROM     phenotipos p
JOIN     atributos a ON a.sampid LIKE CONCAT(p.id, '%')
GROUP BY p.id

尝试使您的左连接条件 SAMPID rlike id:

SELECT p.id, sum(a.SAMPID is not null)
FROM phenotipos p
LEFT JOIN atributos a ON a.SAMPID rlike p.id
GROUP BY p.id

这样做的好处是给 id 计数为 0,而且无论 SAMPID id 位于何处,它都有效。