gpt4 book ai didi

sql - 更新 Postgres 中表的前 n 行

转载 作者:行者123 更新时间:2023-11-29 12:43:06 25 4
gpt4 key购买 nike

我有下表:

 year | value  | tercile
------+--------+---------
1980 | 96.4 |
1981 | 727 |
1982 | 804.7 |
1983 | 979 |
1984 | 995 |
1985 | 984.4 |
1986 | 994.6 |
1987 | 98.39 |
1988 | 97 |
1989 | 87.87 |
1990 | 4054.3 |
1991 | 82.89 |
1992 | 94 |
1993 | 97.61 |
1994 | 99.68 |
1995 | 99.9 |
1996 | 9.42 |
1997 | 75.66 |
1998 | 2.16 |
1999 | 696 |
2000 | 99.38 |
2001 | 9.81 |
2002 | 99.27 |
2003 | 2.75 |
2004 | 12.51 |
2005 | 9.29 |
2006 | 994.71 |
2007 | 97.06 |
2008 | 64.44 |
2009 | 95 |
2010 | 40.88 |
2011 | 9.46 |
2012 | 742.86 |
2013 | 9.5 |
2014 | 736.38 |
2015 | 93.13 |

我需要根据“值”列中的值用值 1-3 填充“tercile”列。 3 被分配给具有 12 个最高值的记录,2 被分配给具有 12 个中间值的记录,1 被分配给具有最低 12 个值的记录。

我可以通过以下查询检索这些记录:

select * from trace_terciles order by value desc limit 12 
select * from trace_terciles order by value desc limit 12 offset 12
select * from trace_terciles order by value desc limit 12 offset 24

但我不知道如何更新这些 SELECT 语句的结果。我怎样才能做到这一点?通过使用子查询?

最佳答案

怎么样

update trace_terciles set tercile=2 where year in (select year from trace_terciles order by value desc limit 12 offset 12)

其他 2 个案例也是如此。

关于sql - 更新 Postgres 中表的前 n 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39300412/

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