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 の後にテーブル名が続きます。しかし、質問が 1 つのテーブルのみを参照しているのに、なぜ 2 つのテーブルがリストされているのでしょうか? 誰かがこのソリューションの仕組みを説明できますか? また、私はこの部分を理解していませんでした: HAVING SUM(SIGN(1-SIGN(y.val-x.val)))
.