我需要计算 MySQL 中的中值。我在这里看到了解决方案。
但是,我没有理解其中的一部分。此处输入代码提供的解决方案如下:
SELECT x.val from data x, data y
GROUP BY x.val
HAVING SUM(SIGN(1-SIGN(y.val-x.val))) = (COUNT(*)+1)/2
在原始问题的背景下是data x
什么?data y
通常 FROM 后跟表名。但是,当问题仅涉及一个时,为什么列出 2 个表?有人可以解释这个解决方案是如何工作的吗?另外,我不明白这部分:HAVING SUM(SIGN(1-SIGN(y.val-x.val)))
.