小编给大家分享一下一种数据库系统中如何实现按范围分组,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
建立测试表
testdb=# CREATE TEMP TABLE团队(
编号序列号,
名称文本,
出生年份整数,
工资整数
);
插入记录
testdb=#插入团队(姓名、出生年份、工资)
价值('加布里埃尔',1970,44000),
(《汤姆》,1972,36000),
('法案',1978年,39500年),
('鲍勃',1980年,29000年),
(《罗杰》,1976,26800),
(《卢卡斯》,1965,56900),
(《杰罗姆》,1984,33500),
(《安德鲁》,1992,41600),
(《约翰》,1991,40000),
(《保罗》,1964,39400),
(《理查德》,1986,23000),
(《约瑟夫》,1988,87000),
(《杰森》,1990,55000);
查询结果
testdb=# WITH系列自动化系统(
SELECT generate_series(1950,2000,10) AS time_start - 1950=min,2010=max,10=10年间隔
),范围为自动化系统(
选择时间_开始,(时间_开始9)作为时间_结束从系列- 9=间隔(10年)减一
)
选择时间_开始,时间_结束,
(从出生年份介于时间_开始和时间_结束之间的团队中选择计数(*))作为团队成员,
回合((选择AVG(工资)来自出生地点的团队_年份_时间_开始和时间_结束之间),2)作为工资_平均值,
(从团队中选择最低工资(工资)作为最低工资,
(从团队中选择最大值(薪资)作为薪资最大值
从范围;
输出结果:
time _ start | time _ end | team _ members | salary _ avg | salary _ min | salary _ max
- - - - - -
1950 | 1959 | 0 | | |
1960 | 1969 | 2 | 48150.00 | 39400 | 56900
1970 | 1979 | 4 | 36575.00 | 26800 | 44000
1980 | 1989 | 4 | 43125.00 | 23000 | 87000
1990 | 1999 | 3 | 45533.33 | 40000 | 55000
2000 | 2009 | 0 | | |
(6行)
testdb=#
以上是" postgresql中如何实现按范围分组"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/116461.html