How to adjust SQL aggregation by date query result to merge values in same level where nulls exist for some...
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ height:90px;width:728px;box-sizing:border-box;
}
Sorry for the messy title but here is my problem description.
| id|dateKey|colA|colB|colD|colE|
+---+-------+----+----+----+----+
| 1 |180111 | 1 | 5 |Null|Null|
| 2 |180111 |Null|Null| 6 | 7 |
| 3 |180111 | 2 | 5 | 3 | 2 |
I have the above table data but I want the result to appear as below when data aggregated (e.g. sum) by date:
|dateKey|colA|colB|colD|colE|
+-------+----+----+----+----+
|180111 | 3 | 10 |9 |9 |
Is there a way to do it as I am struggling to achieve it?
Note: this query will be running on 10 Gb of data with date filters.
sql

add a comment |
Sorry for the messy title but here is my problem description.
| id|dateKey|colA|colB|colD|colE|
+---+-------+----+----+----+----+
| 1 |180111 | 1 | 5 |Null|Null|
| 2 |180111 |Null|Null| 6 | 7 |
| 3 |180111 | 2 | 5 | 3 | 2 |
I have the above table data but I want the result to appear as below when data aggregated (e.g. sum) by date:
|dateKey|colA|colB|colD|colE|
+-------+----+----+----+----+
|180111 | 3 | 10 |9 |9 |
Is there a way to do it as I am struggling to achieve it?
Note: this query will be running on 10 Gb of data with date filters.
sql

Do you have a sample query? You can use coalesce to convert null or empty record to zero
– jned29
Jan 3 at 5:28
You can find the answer and live demo her- rextester.com/MKYY62432
– Suraj Kumar
Jan 3 at 5:38
add a comment |
Sorry for the messy title but here is my problem description.
| id|dateKey|colA|colB|colD|colE|
+---+-------+----+----+----+----+
| 1 |180111 | 1 | 5 |Null|Null|
| 2 |180111 |Null|Null| 6 | 7 |
| 3 |180111 | 2 | 5 | 3 | 2 |
I have the above table data but I want the result to appear as below when data aggregated (e.g. sum) by date:
|dateKey|colA|colB|colD|colE|
+-------+----+----+----+----+
|180111 | 3 | 10 |9 |9 |
Is there a way to do it as I am struggling to achieve it?
Note: this query will be running on 10 Gb of data with date filters.
sql

Sorry for the messy title but here is my problem description.
| id|dateKey|colA|colB|colD|colE|
+---+-------+----+----+----+----+
| 1 |180111 | 1 | 5 |Null|Null|
| 2 |180111 |Null|Null| 6 | 7 |
| 3 |180111 | 2 | 5 | 3 | 2 |
I have the above table data but I want the result to appear as below when data aggregated (e.g. sum) by date:
|dateKey|colA|colB|colD|colE|
+-------+----+----+----+----+
|180111 | 3 | 10 |9 |9 |
Is there a way to do it as I am struggling to achieve it?
Note: this query will be running on 10 Gb of data with date filters.
sql

sql

edited Jan 3 at 6:19
marc_s
584k13011241270
584k13011241270
asked Jan 3 at 5:27
BumbleBeeBumbleBee
426
426
Do you have a sample query? You can use coalesce to convert null or empty record to zero
– jned29
Jan 3 at 5:28
You can find the answer and live demo her- rextester.com/MKYY62432
– Suraj Kumar
Jan 3 at 5:38
add a comment |
Do you have a sample query? You can use coalesce to convert null or empty record to zero
– jned29
Jan 3 at 5:28
You can find the answer and live demo her- rextester.com/MKYY62432
– Suraj Kumar
Jan 3 at 5:38
Do you have a sample query? You can use coalesce to convert null or empty record to zero
– jned29
Jan 3 at 5:28
Do you have a sample query? You can use coalesce to convert null or empty record to zero
– jned29
Jan 3 at 5:28
You can find the answer and live demo her- rextester.com/MKYY62432
– Suraj Kumar
Jan 3 at 5:38
You can find the answer and live demo her- rextester.com/MKYY62432
– Suraj Kumar
Jan 3 at 5:38
add a comment |
2 Answers
2
active
oldest
votes
A simple GROUP BY
query with SUM
should already meet your needs:
SELECT
dateKey,
SUM(colA) AS colA,
SUM(colB) AS colB,
SUM(colD) AS colD,
SUM(colE) AS colE
FROM yourTable
GROUP BY dateKey;
The reason this should work is that SUM
by default ignores NULL
values, so only the numbers present should end up in the sum.
add a comment |
You can also use ISNULL
to ignore and convert null
values to zero as shown below.
create table #temp (id int, dateKey int, colA int, colB int, colD int, colE int)
insert into #temp values (1,180111, 1 , 5 ,Null,Null),
( 2,180111, Null , Null , 6 , 7 ),
( 3,180111, 2 , 5 , 3 , 2 )
SELECT
dateKey,
SUM(ISNULL(colA,0)) AS colA,
SUM(ISNULL(colB,0)) AS colB,
SUM(ISNULL(colD,0)) AS colD,
SUM(ISNULL(colE,0)) AS colE
FROM #temp
GROUP BY dateKey;
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
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%2f54016777%2fhow-to-adjust-sql-aggregation-by-date-query-result-to-merge-values-in-same-level%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
A simple GROUP BY
query with SUM
should already meet your needs:
SELECT
dateKey,
SUM(colA) AS colA,
SUM(colB) AS colB,
SUM(colD) AS colD,
SUM(colE) AS colE
FROM yourTable
GROUP BY dateKey;
The reason this should work is that SUM
by default ignores NULL
values, so only the numbers present should end up in the sum.
add a comment |
A simple GROUP BY
query with SUM
should already meet your needs:
SELECT
dateKey,
SUM(colA) AS colA,
SUM(colB) AS colB,
SUM(colD) AS colD,
SUM(colE) AS colE
FROM yourTable
GROUP BY dateKey;
The reason this should work is that SUM
by default ignores NULL
values, so only the numbers present should end up in the sum.
add a comment |
A simple GROUP BY
query with SUM
should already meet your needs:
SELECT
dateKey,
SUM(colA) AS colA,
SUM(colB) AS colB,
SUM(colD) AS colD,
SUM(colE) AS colE
FROM yourTable
GROUP BY dateKey;
The reason this should work is that SUM
by default ignores NULL
values, so only the numbers present should end up in the sum.
A simple GROUP BY
query with SUM
should already meet your needs:
SELECT
dateKey,
SUM(colA) AS colA,
SUM(colB) AS colB,
SUM(colD) AS colD,
SUM(colE) AS colE
FROM yourTable
GROUP BY dateKey;
The reason this should work is that SUM
by default ignores NULL
values, so only the numbers present should end up in the sum.
answered Jan 3 at 5:29


Tim BiegeleisenTim Biegeleisen
237k13100160
237k13100160
add a comment |
add a comment |
You can also use ISNULL
to ignore and convert null
values to zero as shown below.
create table #temp (id int, dateKey int, colA int, colB int, colD int, colE int)
insert into #temp values (1,180111, 1 , 5 ,Null,Null),
( 2,180111, Null , Null , 6 , 7 ),
( 3,180111, 2 , 5 , 3 , 2 )
SELECT
dateKey,
SUM(ISNULL(colA,0)) AS colA,
SUM(ISNULL(colB,0)) AS colB,
SUM(ISNULL(colD,0)) AS colD,
SUM(ISNULL(colE,0)) AS colE
FROM #temp
GROUP BY dateKey;
add a comment |
You can also use ISNULL
to ignore and convert null
values to zero as shown below.
create table #temp (id int, dateKey int, colA int, colB int, colD int, colE int)
insert into #temp values (1,180111, 1 , 5 ,Null,Null),
( 2,180111, Null , Null , 6 , 7 ),
( 3,180111, 2 , 5 , 3 , 2 )
SELECT
dateKey,
SUM(ISNULL(colA,0)) AS colA,
SUM(ISNULL(colB,0)) AS colB,
SUM(ISNULL(colD,0)) AS colD,
SUM(ISNULL(colE,0)) AS colE
FROM #temp
GROUP BY dateKey;
add a comment |
You can also use ISNULL
to ignore and convert null
values to zero as shown below.
create table #temp (id int, dateKey int, colA int, colB int, colD int, colE int)
insert into #temp values (1,180111, 1 , 5 ,Null,Null),
( 2,180111, Null , Null , 6 , 7 ),
( 3,180111, 2 , 5 , 3 , 2 )
SELECT
dateKey,
SUM(ISNULL(colA,0)) AS colA,
SUM(ISNULL(colB,0)) AS colB,
SUM(ISNULL(colD,0)) AS colD,
SUM(ISNULL(colE,0)) AS colE
FROM #temp
GROUP BY dateKey;
You can also use ISNULL
to ignore and convert null
values to zero as shown below.
create table #temp (id int, dateKey int, colA int, colB int, colD int, colE int)
insert into #temp values (1,180111, 1 , 5 ,Null,Null),
( 2,180111, Null , Null , 6 , 7 ),
( 3,180111, 2 , 5 , 3 , 2 )
SELECT
dateKey,
SUM(ISNULL(colA,0)) AS colA,
SUM(ISNULL(colB,0)) AS colB,
SUM(ISNULL(colD,0)) AS colD,
SUM(ISNULL(colE,0)) AS colE
FROM #temp
GROUP BY dateKey;
answered Jan 3 at 5:42


Suraj KumarSuraj Kumar
2,79141026
2,79141026
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.
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%2f54016777%2fhow-to-adjust-sql-aggregation-by-date-query-result-to-merge-values-in-same-level%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
Do you have a sample query? You can use coalesce to convert null or empty record to zero
– jned29
Jan 3 at 5:28
You can find the answer and live demo her- rextester.com/MKYY62432
– Suraj Kumar
Jan 3 at 5:38