我的github
posts - 3243,  comments - 42,  views - 158万

表关联时往往只能关联某个值相同的行。

假如说让它关联某一行的上一行该怎么做?

在 SQL 中,要关联排序后某个列的上一行,可以使用子查询和窗口函数来实现。下面是一个示例的 SQL 查询,假设我们有一个名为 table_name 的表,其中包含两列 id 和 value,我们想要根据 value 列的排序结果,关联 id 列上一行的数据:

SELECT t1.*
FROM table_name t1
LEFT JOIN table_name t2 ON t1.id = t2.id - 1
ORDER BY t1.value;

在上面的查询中,我们使用了一个自联接操作,将表 table_name 与自身联接,将 t1 和 t2 作为两个别名来引用表的不同行。通过将 t1.id = t2.id - 1 作为联接条件,我们关联了 t1 的上一行数据,即 t2 的 id 列比 t1 的 id 列小 1。

最后,我们使用 ORDER BY 子句按照 value 列的排序结果来返回结果集。

请注意,上述查询假设每行的 id 是唯一的,并且排序列是按照升序进行排序的。如果存在重复的 id 值或者需要降序排序,可能需要根据具体情况进行调整。

假如是不同的表呢?

复制代码
select id 

from table1,

name=

select value from

table2

where table2.value>table1.value

order by value
复制代码

alter table "table1"

add column prjscale double precision;update table1 set ;

alter table "table2"

add column prjscale double precision;update table2 set ;

提前计算好保存到表里,避免每一次都进行计算。

 

posted on   XiaoNiuFeiTian  阅读(16)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
历史上的今天:
2019-09-12 从MapGIS K9到MapGIS 10到MapGIS 10.3 Server安装指南
2014-09-12 Fortran编译器之一GUN Fortran安装(Windows XP)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示