From 340f6bbdb62bc8a56621a7fc9ec1080f8e2de639 Mon Sep 17 00:00:00 2001 From: jbranchaud Date: Fri, 19 Jun 2015 08:26:41 -0500 Subject: [PATCH] Add Generate Series Of Numbers as a postgres til. --- README.md | 1 + postgres/generate-series-of-numbers.md | 46 ++++++++++++++++++++++++++ 2 files changed, 47 insertions(+) create mode 100644 postgres/generate-series-of-numbers.md diff --git a/README.md b/README.md index 88e2400..0a24c39 100644 --- a/README.md +++ b/README.md @@ -57,6 +57,7 @@ smart people at [Hashrocket](http://hashrocket.com/). - [Configure The Timezone](postgres/configure-the-timezone.md) - [Count Records By Type](postgres/count-records-by-type.md) - [Extracting Nested JSON Data](postgres/extracting-nested-json-data.md) +- [Generate Series Of Numbers](postgres/generate-series-of-numbers.md) - [String Contains Another String](postgres/string-contains-another-string.md) - [Timestamp Functions](postgres/timestamp-functions.md) - [Toggling The Pager In PSQL](postgres/toggling-the-pager-in-psql.md) diff --git a/postgres/generate-series-of-numbers.md b/postgres/generate-series-of-numbers.md new file mode 100644 index 0000000..0bef567 --- /dev/null +++ b/postgres/generate-series-of-numbers.md @@ -0,0 +1,46 @@ +# Generate Series Of Numbers + +Postgres has a `generate_series` function that can be used to, well, +generate a series of something. The simplest way to use it is by giving it +`start` and `stop` arguments + +```sql +> select generate_series(1,5); + generate_series +----------------- + 1 + 2 + 3 + 4 + 5 +``` + +The default step is 1, so if you want to count backwards, you need to +specify a negative step + + +```sql +> select generate_series(5,1,-1); + generate_series +----------------- + 5 + 4 + 3 + 2 + 1 +``` + +You can use a larger step value to, for instance, get only multiples of 3 + +```sql +> select generate_series(3,17,3); + generate_series +----------------- + 3 + 6 + 9 + 12 + 15 +``` + +Trying this out with timestamps is left as an exercise for the reader.