我需要从“station”表中找出一个名为“lat\u n”的列的中值我创建了一个表视图,其中有一个名为num\u row的新列和一个名为median\u table的station中的旧列“lat\u n”。我将表视图中所有行的值存储在一个名为@num\u rows的变量中。现在我用这个来寻找中值,但它显示语法错误,请帮助。
create view median_table as (SELECT ROW_NUMBER() OVER() AS num_row, lat_n FROM station order by lat_n);
select @num_rows:= count(num_row) from median_table
select avg(lat_n) as median_val from median_table
where num_row in ((@num_rows+1)//2+(@num_rows+2)//2)
1条答案
按热度按时间kxe2p93d1#
使用窗口函数。这里有一种方法: