资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

postgresql中如何实现groupbyrange

小编给大家分享一下postgresql中如何实现group by range,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

创新互联建站是一家专业提供义马企业网站建设,专注与做网站、成都网站设计、H5响应式网站、小程序制作等业务。10年已为义马众多企业、政府机构等服务。创新互联专业的建站公司优惠进行中。

  1. 建立测试表

testdb=# CREATE TEMP TABLE team (
id serial,
name text,
birth_year integer,
salary integer
);

  1. 插入记录

testdb=# INSERT INTO team (name, birth_year, salary)
VALUES ('Gabriel', 1970, 44000),
('Tom', 1972, 36000),
('Bill', 1978, 39500),
('Bob', 1980, 29000),
('Roger', 1976, 26800),
('Lucas', 1965, 56900),
('Jerome', 1984, 33500),
('Andrew', 1992, 41600),
('John', 1991, 40000),
('Paul', 1964, 39400),
('Richard', 1986, 23000),
('Joseph', 1988, 87000),
('Jason', 1990, 55000);

  1. 查询结果

testdb=# WITH series AS (  
SELECT generate_series(1950, 2000, 10) AS time_start -- 1950 = min, 2010 = max, 10 = 10 year interval
), range AS (
SELECT time_start, (time_start + 9) AS time_end FROM series -- 9 = interval (10 years) minus 1
)
SELECT time_start, time_end,
(SELECT count(*) FROM team WHERE birth_year BETWEEN time_start AND time_end) as team_members,
round((SELECT AVG(salary) FROM team WHERE birth_year BETWEEN time_start AND time_end), 2) as salary_avg,
(SELECT MIN(salary) FROM team WHERE birth_year BETWEEN time_start AND time_end) as salary_min,
(SELECT MAX(salary) FROM team WHERE birth_year BETWEEN time_start AND time_end) as salary_max
FROM range;

输出结果:

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 rows)

testdb=#

以上是“postgresql中如何实现group by range”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!


文章名称:postgresql中如何实现groupbyrange
新闻来源:http://cdkjz.cn/article/gjjsih.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220