what is ORDER BY useful for when i do PARTITION BY
up vote
0
down vote
favorite
i started to learn the PARTITION BY methode with agregate functions but i dont understand why should i use ORDER BY for in this query .
i want to SUM the total amount of sales in $ on "standart paper " in each year
this is my code :
SELECT standard_amt_usd,
DATE_TRUNC('year', occurred_at) as year,
SUM(standard_amt_usd) OVER (PARTITION BY DATE_TRUNC('year', occurred_at)
ORDER BY occurred_at) AS running_total
FROM orders ;
the answers i get are correct but i still dont understand why in need to ese ORDER BY in here and what will happen if i wont use it ?
thank for the help:)
sql postgresql sql-order-by window-functions
add a comment |
up vote
0
down vote
favorite
i started to learn the PARTITION BY methode with agregate functions but i dont understand why should i use ORDER BY for in this query .
i want to SUM the total amount of sales in $ on "standart paper " in each year
this is my code :
SELECT standard_amt_usd,
DATE_TRUNC('year', occurred_at) as year,
SUM(standard_amt_usd) OVER (PARTITION BY DATE_TRUNC('year', occurred_at)
ORDER BY occurred_at) AS running_total
FROM orders ;
the answers i get are correct but i still dont understand why in need to ese ORDER BY in here and what will happen if i wont use it ?
thank for the help:)
sql postgresql sql-order-by window-functions
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
i started to learn the PARTITION BY methode with agregate functions but i dont understand why should i use ORDER BY for in this query .
i want to SUM the total amount of sales in $ on "standart paper " in each year
this is my code :
SELECT standard_amt_usd,
DATE_TRUNC('year', occurred_at) as year,
SUM(standard_amt_usd) OVER (PARTITION BY DATE_TRUNC('year', occurred_at)
ORDER BY occurred_at) AS running_total
FROM orders ;
the answers i get are correct but i still dont understand why in need to ese ORDER BY in here and what will happen if i wont use it ?
thank for the help:)
sql postgresql sql-order-by window-functions
i started to learn the PARTITION BY methode with agregate functions but i dont understand why should i use ORDER BY for in this query .
i want to SUM the total amount of sales in $ on "standart paper " in each year
this is my code :
SELECT standard_amt_usd,
DATE_TRUNC('year', occurred_at) as year,
SUM(standard_amt_usd) OVER (PARTITION BY DATE_TRUNC('year', occurred_at)
ORDER BY occurred_at) AS running_total
FROM orders ;
the answers i get are correct but i still dont understand why in need to ese ORDER BY in here and what will happen if i wont use it ?
thank for the help:)
sql postgresql sql-order-by window-functions
sql postgresql sql-order-by window-functions
edited Nov 11 at 12:48
a_horse_with_no_name
288k46434530
288k46434530
asked Nov 11 at 12:33
Eliza Romanski
504
504
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
up vote
1
down vote
accepted
Run this query:
SELECT standard_amt_usd,
DATE_TRUNC('year', occurred_at) as year,
SUM(standard_amt_usd) OVER (PARTITION BY DATE_TRUNC('year', occurred_at)
ORDER BY occurred_at
) AS running_total,
SUM(standard_amt_usd) OVER (PARTITION BY DATE_TRUNC('year', occurred_at)
) AS group_total
FROM orders ;
You will probably see the difference right away. The ORDER BY
says to do the summation "up to" this row. Without the ORDER BY
, the summation is the same on all rows with the same PARTITION BY
key.
add a comment |
up vote
0
down vote
ORDER BY has mainly two rules:
- To actually define how another feature works. This is true when
using TOP, say, or within an OVER() partition function. It doesn't
require sorting to occur, it just says "this definition only makes
sense if we consider the rows in the result set to occur in a
particular order - here's the one I want to use" - To dictate the sort order of the result set. This is true when it's
an ORDER BY clause on the outermost statement that is part of a
particular query - not in a subquery, a CTE, an OVER() paritition
function, etc.
add a comment |
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
1
down vote
accepted
Run this query:
SELECT standard_amt_usd,
DATE_TRUNC('year', occurred_at) as year,
SUM(standard_amt_usd) OVER (PARTITION BY DATE_TRUNC('year', occurred_at)
ORDER BY occurred_at
) AS running_total,
SUM(standard_amt_usd) OVER (PARTITION BY DATE_TRUNC('year', occurred_at)
) AS group_total
FROM orders ;
You will probably see the difference right away. The ORDER BY
says to do the summation "up to" this row. Without the ORDER BY
, the summation is the same on all rows with the same PARTITION BY
key.
add a comment |
up vote
1
down vote
accepted
Run this query:
SELECT standard_amt_usd,
DATE_TRUNC('year', occurred_at) as year,
SUM(standard_amt_usd) OVER (PARTITION BY DATE_TRUNC('year', occurred_at)
ORDER BY occurred_at
) AS running_total,
SUM(standard_amt_usd) OVER (PARTITION BY DATE_TRUNC('year', occurred_at)
) AS group_total
FROM orders ;
You will probably see the difference right away. The ORDER BY
says to do the summation "up to" this row. Without the ORDER BY
, the summation is the same on all rows with the same PARTITION BY
key.
add a comment |
up vote
1
down vote
accepted
up vote
1
down vote
accepted
Run this query:
SELECT standard_amt_usd,
DATE_TRUNC('year', occurred_at) as year,
SUM(standard_amt_usd) OVER (PARTITION BY DATE_TRUNC('year', occurred_at)
ORDER BY occurred_at
) AS running_total,
SUM(standard_amt_usd) OVER (PARTITION BY DATE_TRUNC('year', occurred_at)
) AS group_total
FROM orders ;
You will probably see the difference right away. The ORDER BY
says to do the summation "up to" this row. Without the ORDER BY
, the summation is the same on all rows with the same PARTITION BY
key.
Run this query:
SELECT standard_amt_usd,
DATE_TRUNC('year', occurred_at) as year,
SUM(standard_amt_usd) OVER (PARTITION BY DATE_TRUNC('year', occurred_at)
ORDER BY occurred_at
) AS running_total,
SUM(standard_amt_usd) OVER (PARTITION BY DATE_TRUNC('year', occurred_at)
) AS group_total
FROM orders ;
You will probably see the difference right away. The ORDER BY
says to do the summation "up to" this row. Without the ORDER BY
, the summation is the same on all rows with the same PARTITION BY
key.
answered Nov 11 at 12:37
Gordon Linoff
749k34285391
749k34285391
add a comment |
add a comment |
up vote
0
down vote
ORDER BY has mainly two rules:
- To actually define how another feature works. This is true when
using TOP, say, or within an OVER() partition function. It doesn't
require sorting to occur, it just says "this definition only makes
sense if we consider the rows in the result set to occur in a
particular order - here's the one I want to use" - To dictate the sort order of the result set. This is true when it's
an ORDER BY clause on the outermost statement that is part of a
particular query - not in a subquery, a CTE, an OVER() paritition
function, etc.
add a comment |
up vote
0
down vote
ORDER BY has mainly two rules:
- To actually define how another feature works. This is true when
using TOP, say, or within an OVER() partition function. It doesn't
require sorting to occur, it just says "this definition only makes
sense if we consider the rows in the result set to occur in a
particular order - here's the one I want to use" - To dictate the sort order of the result set. This is true when it's
an ORDER BY clause on the outermost statement that is part of a
particular query - not in a subquery, a CTE, an OVER() paritition
function, etc.
add a comment |
up vote
0
down vote
up vote
0
down vote
ORDER BY has mainly two rules:
- To actually define how another feature works. This is true when
using TOP, say, or within an OVER() partition function. It doesn't
require sorting to occur, it just says "this definition only makes
sense if we consider the rows in the result set to occur in a
particular order - here's the one I want to use" - To dictate the sort order of the result set. This is true when it's
an ORDER BY clause on the outermost statement that is part of a
particular query - not in a subquery, a CTE, an OVER() paritition
function, etc.
ORDER BY has mainly two rules:
- To actually define how another feature works. This is true when
using TOP, say, or within an OVER() partition function. It doesn't
require sorting to occur, it just says "this definition only makes
sense if we consider the rows in the result set to occur in a
particular order - here's the one I want to use" - To dictate the sort order of the result set. This is true when it's
an ORDER BY clause on the outermost statement that is part of a
particular query - not in a subquery, a CTE, an OVER() paritition
function, etc.
answered Nov 11 at 12:37
Hamza Haider
604315
604315
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53248803%2fwhat-is-order-by-useful-for-when-i-do-partition-by%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown