gpt4 book ai didi

mysql - 如何将升序排列的字段与相同降序排列的字段连接起来?

转载 作者:行者123 更新时间:2023-11-29 16:29:05 24 4
gpt4 key购买 nike

我需要一个查询,该查询与按升序排列的数据列表(只是表中 float 据的一个字段)和按降序排列的相同字段相连

就上下文而言,我正在练习我的(非常)基本且(非常)生疏的 SQL(特别是 MySQL)。我正在努力解决的更大问题是 this HackerRank question ,用于计算 STATION 表中 LAT_N 字段的中位数。

我的策略是从第一列中按升序排列的数据 (up_LAT_N) 和第二列中按降序排列的数据 (down_LAT_N) 的表返回满足升序字段中的数据大于或等于降序字段中的数据的条件(cond)的第一行的平均值。这个平均值就是中位数。

我尝试过以下方法:

SELECT  up.LAT_N AS up_LAT_N, 
down.LAT_N AS down_LAT_N,
CASE
WHEN up.LAT_N >= down.LAT_N THEN 1 ELSE 0
END AS cond
FROM
(SELECT LAT_N FROM STATION ORDER BY LAT_N) up,
(SELECT LAT_N FROM STATION ORDER BY LAT_N DESC) down

...但我的顺序似乎没有被保留。我想我基本上可以对这两列进行“连接”,但我不确定如何为每个要连接的列引入索引。

提前谢谢!

编辑:抱歉造成困惑:我并不是在寻找计算中位数的更广泛问题的解决方案 - 只是稍微插入一下,以帮助我实现自己解决此问题的尝试!

最佳答案

对子查询进行排序是没有意义的。如果您需要视觉排序,则需要在外部查询上执行此操作。

SELECT  up.LAT_N AS up_LAT_N 
down.LAT_N AS down_LAT_N
CASE
WHEN up.LAT_N >= down.LAT_N THEN 1 ELSE 0
END AS cond
FROM STATION up, STATION down
ORDER BY up.LAT_N, down.LATN DESC

关于mysql - 如何将升序排列的字段与相同降序排列的字段连接起来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54057583/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com