【发布时间】:2021-09-09 21:23:55
【问题描述】:
我正在尝试通过使用 order by 并返回 mid 元素来返回中位数。我使用限制来消除前半部分,然后返回 1 行,这将给出中位数。
SELECT
COUNT(*) into @cnt FROM STATION;
SELECT ROUND(LAT_N,4)
FROM STATION
ORDER BY LAT_N
LIMIT 1 OFFSET ((@cnt-1)/2)
我收到错误:-
第 6 行的 ERROR 1064 (42000):您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 4 行的 '((@cnt-1)/2)' 附近使用正确的语法
总行数 = 499 所以如果我使用
SELECT
COUNT(*) into @cnt FROM STATION;
SELECT ROUND(LAT_N,4)
FROM STATION
ORDER BY LAT_N
LIMIT 1 OFFSET 250
我没有收到任何错误。那么为什么第一个错误呢?
【问题讨论】:
标签: mysql sql limit offset median