【问题标题】:How to calculate median in mysql by using case when如何在mysql中使用case when计算中位数
【发布时间】:2018-08-12 03:11:47
【问题描述】:

我有一个名为station 的表,其中有一列LAT_N。我正在尝试获得LAT_N 的中位数。

这是我的查询:

select 
case when count(Lat_N)%2=0 then (select (Lat_N from station limit (1,ceil(count(Lat_N)/2))+ select (Lat_N from station limit (1,floor(count(Lat_N)/2)))))
else (Select Lat_N from station limit(1,floor(count(Lat_N)/2)+1))
end
from station;

【问题讨论】:

  • 更新您的问题添加适当的数据样本和预期的结果..
  • 你用的是什么版本?

标签: mysql median case-when


【解决方案1】:

尝试以下查询:

SELECT avg(tmp1.LAT_N) as median_LAT FROM (
SELECT @rownum:=@rownum+1 as row_number, s.val
  FROM station s,  (SELECT @rownum:=0) r
  ORDER BY s.LAT_N
) as tmp1, 
(
  SELECT count(*) as total_rows
  FROM station s
) as tmp2
AND tmp1.row_number in ( floor((total_rows+1)/2), floor((total_rows+2)/2) );

【讨论】:

    猜你喜欢
    • 2012-03-24
    • 1970-01-01
    • 1970-01-01
    • 2013-10-11
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多