How to get MAX value for a given week having data per day










0















Not sure if the title is readable enough, will try to explain it better here



I have data in the following schema:



ID | Date | Unit1 | Hours | TENURE_Hours 
"Alex" | '2018-11-04' | 21 | 12 | 134
"Adam" | '2018-11-04' | 21 | 26 | 156
"John" | '2018-11-04' | 21 | 32 | 122
"Alex" | '2018-11-06' | 21 | 67 | 146
"Adam" | '2018-11-06' | 21 | 74 | 182
"John" | '2018-11-06' | 21 | 45 | 154
"Alex" | '2018-11-11' | 21 | 22 | 213
"Adam" | '2018-11-11' | 21 | 22 | 256
"John" | '2018-11-11' | 21 | 22 | 199


And what I would like to achieve is to have the split per week number with the highest number in the week



I tried to use MAX(), but it returns the highest value within the whole range, if I try to pull data for previous 10 months ,it will return the highest value for this period of time, not specific week.



In the above example I would like to have:



Week | ID | TENURE_Hours

45 | "Alex" | 146
45 | "Adam" | 182
45 | "John" | 154

46 | "Alex" | 213
46 | "Adam" | 256
46 | "John" | 199


What do you think? Is there a way to do this?



I'm using Microsoft SQL Server, but I think this problem can be solved in every SQL engine



Thanks in advance










share|improve this question



















  • 1





    First figure out which RDBMS you're using.

    – Strawberry
    Nov 13 '18 at 17:26






  • 1





    The problem can be solved in every SQL engine, but functions, especially date functions are very different for different dbms. It's useless if someone is posting MySQL or Oracle code if you're using SQL Server, so tag your question properly.

    – Eric
    Nov 13 '18 at 17:37















0















Not sure if the title is readable enough, will try to explain it better here



I have data in the following schema:



ID | Date | Unit1 | Hours | TENURE_Hours 
"Alex" | '2018-11-04' | 21 | 12 | 134
"Adam" | '2018-11-04' | 21 | 26 | 156
"John" | '2018-11-04' | 21 | 32 | 122
"Alex" | '2018-11-06' | 21 | 67 | 146
"Adam" | '2018-11-06' | 21 | 74 | 182
"John" | '2018-11-06' | 21 | 45 | 154
"Alex" | '2018-11-11' | 21 | 22 | 213
"Adam" | '2018-11-11' | 21 | 22 | 256
"John" | '2018-11-11' | 21 | 22 | 199


And what I would like to achieve is to have the split per week number with the highest number in the week



I tried to use MAX(), but it returns the highest value within the whole range, if I try to pull data for previous 10 months ,it will return the highest value for this period of time, not specific week.



In the above example I would like to have:



Week | ID | TENURE_Hours

45 | "Alex" | 146
45 | "Adam" | 182
45 | "John" | 154

46 | "Alex" | 213
46 | "Adam" | 256
46 | "John" | 199


What do you think? Is there a way to do this?



I'm using Microsoft SQL Server, but I think this problem can be solved in every SQL engine



Thanks in advance










share|improve this question



















  • 1





    First figure out which RDBMS you're using.

    – Strawberry
    Nov 13 '18 at 17:26






  • 1





    The problem can be solved in every SQL engine, but functions, especially date functions are very different for different dbms. It's useless if someone is posting MySQL or Oracle code if you're using SQL Server, so tag your question properly.

    – Eric
    Nov 13 '18 at 17:37













0












0








0








Not sure if the title is readable enough, will try to explain it better here



I have data in the following schema:



ID | Date | Unit1 | Hours | TENURE_Hours 
"Alex" | '2018-11-04' | 21 | 12 | 134
"Adam" | '2018-11-04' | 21 | 26 | 156
"John" | '2018-11-04' | 21 | 32 | 122
"Alex" | '2018-11-06' | 21 | 67 | 146
"Adam" | '2018-11-06' | 21 | 74 | 182
"John" | '2018-11-06' | 21 | 45 | 154
"Alex" | '2018-11-11' | 21 | 22 | 213
"Adam" | '2018-11-11' | 21 | 22 | 256
"John" | '2018-11-11' | 21 | 22 | 199


And what I would like to achieve is to have the split per week number with the highest number in the week



I tried to use MAX(), but it returns the highest value within the whole range, if I try to pull data for previous 10 months ,it will return the highest value for this period of time, not specific week.



In the above example I would like to have:



Week | ID | TENURE_Hours

45 | "Alex" | 146
45 | "Adam" | 182
45 | "John" | 154

46 | "Alex" | 213
46 | "Adam" | 256
46 | "John" | 199


What do you think? Is there a way to do this?



I'm using Microsoft SQL Server, but I think this problem can be solved in every SQL engine



Thanks in advance










share|improve this question
















Not sure if the title is readable enough, will try to explain it better here



I have data in the following schema:



ID | Date | Unit1 | Hours | TENURE_Hours 
"Alex" | '2018-11-04' | 21 | 12 | 134
"Adam" | '2018-11-04' | 21 | 26 | 156
"John" | '2018-11-04' | 21 | 32 | 122
"Alex" | '2018-11-06' | 21 | 67 | 146
"Adam" | '2018-11-06' | 21 | 74 | 182
"John" | '2018-11-06' | 21 | 45 | 154
"Alex" | '2018-11-11' | 21 | 22 | 213
"Adam" | '2018-11-11' | 21 | 22 | 256
"John" | '2018-11-11' | 21 | 22 | 199


And what I would like to achieve is to have the split per week number with the highest number in the week



I tried to use MAX(), but it returns the highest value within the whole range, if I try to pull data for previous 10 months ,it will return the highest value for this period of time, not specific week.



In the above example I would like to have:



Week | ID | TENURE_Hours

45 | "Alex" | 146
45 | "Adam" | 182
45 | "John" | 154

46 | "Alex" | 213
46 | "Adam" | 256
46 | "John" | 199


What do you think? Is there a way to do this?



I'm using Microsoft SQL Server, but I think this problem can be solved in every SQL engine



Thanks in advance







sql sql-server






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 13 '18 at 17:27









Sami

9,29331244




9,29331244










asked Nov 13 '18 at 17:22









akaribiakaribi

172




172







  • 1





    First figure out which RDBMS you're using.

    – Strawberry
    Nov 13 '18 at 17:26






  • 1





    The problem can be solved in every SQL engine, but functions, especially date functions are very different for different dbms. It's useless if someone is posting MySQL or Oracle code if you're using SQL Server, so tag your question properly.

    – Eric
    Nov 13 '18 at 17:37












  • 1





    First figure out which RDBMS you're using.

    – Strawberry
    Nov 13 '18 at 17:26






  • 1





    The problem can be solved in every SQL engine, but functions, especially date functions are very different for different dbms. It's useless if someone is posting MySQL or Oracle code if you're using SQL Server, so tag your question properly.

    – Eric
    Nov 13 '18 at 17:37







1




1





First figure out which RDBMS you're using.

– Strawberry
Nov 13 '18 at 17:26





First figure out which RDBMS you're using.

– Strawberry
Nov 13 '18 at 17:26




1




1





The problem can be solved in every SQL engine, but functions, especially date functions are very different for different dbms. It's useless if someone is posting MySQL or Oracle code if you're using SQL Server, so tag your question properly.

– Eric
Nov 13 '18 at 17:37





The problem can be solved in every SQL engine, but functions, especially date functions are very different for different dbms. It's useless if someone is posting MySQL or Oracle code if you're using SQL Server, so tag your question properly.

– Eric
Nov 13 '18 at 17:37












1 Answer
1






active

oldest

votes


















0














Is this what you want?



select year(date) as yyyy, datepart(week, date) as wk, id, max(tenure_hours)
from t
group by year(date), datepart(week, date), id
order by yyyy, wk, id;





share|improve this answer























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



    );













    draft saved

    draft discarded


















    StackExchange.ready(
    function ()
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53286449%2fhow-to-get-max-value-for-a-given-week-having-data-per-day%23new-answer', 'question_page');

    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    0














    Is this what you want?



    select year(date) as yyyy, datepart(week, date) as wk, id, max(tenure_hours)
    from t
    group by year(date), datepart(week, date), id
    order by yyyy, wk, id;





    share|improve this answer



























      0














      Is this what you want?



      select year(date) as yyyy, datepart(week, date) as wk, id, max(tenure_hours)
      from t
      group by year(date), datepart(week, date), id
      order by yyyy, wk, id;





      share|improve this answer

























        0












        0








        0







        Is this what you want?



        select year(date) as yyyy, datepart(week, date) as wk, id, max(tenure_hours)
        from t
        group by year(date), datepart(week, date), id
        order by yyyy, wk, id;





        share|improve this answer













        Is this what you want?



        select year(date) as yyyy, datepart(week, date) as wk, id, max(tenure_hours)
        from t
        group by year(date), datepart(week, date), id
        order by yyyy, wk, id;






        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Nov 13 '18 at 17:25









        Gordon LinoffGordon Linoff

        792k36316419




        792k36316419





























            draft saved

            draft discarded
















































            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.




            draft saved


            draft discarded














            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53286449%2fhow-to-get-max-value-for-a-given-week-having-data-per-day%23new-answer', 'question_page');

            );

            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







            Popular posts from this blog

            𛂒𛀶,𛀽𛀑𛂀𛃧𛂓𛀙𛃆𛃑𛃷𛂟𛁡𛀢𛀟𛁤𛂽𛁕𛁪𛂟𛂯,𛁞𛂧𛀴𛁄𛁠𛁼𛂿𛀤 𛂘,𛁺𛂾𛃭𛃭𛃵𛀺,𛂣𛃍𛂖𛃶 𛀸𛃀𛂖𛁶𛁏𛁚 𛂢𛂞 𛁰𛂆𛀔,𛁸𛀽𛁓𛃋𛂇𛃧𛀧𛃣𛂐𛃇,𛂂𛃻𛃲𛁬𛃞𛀧𛃃𛀅 𛂭𛁠𛁡𛃇𛀷𛃓𛁥,𛁙𛁘𛁞𛃸𛁸𛃣𛁜,𛂛,𛃿,𛁯𛂘𛂌𛃛𛁱𛃌𛂈𛂇 𛁊𛃲,𛀕𛃴𛀜 𛀶𛂆𛀶𛃟𛂉𛀣,𛂐𛁞𛁾 𛁷𛂑𛁳𛂯𛀬𛃅,𛃶𛁼

            ャフサォクコ ケウ,コ,ワ メ,ロスョノ゙,クネ,フムカヤヲニ,エコ゚ツ ウイオン゙ケワサネォキモュキォウイノンコチ゚メヌナイゥフュ,カヒウネェ ネ,ホノケ,ムュキ ッボーミュハ,チ ツス ィ メウイマヤ,゙ウチ ヅ ロ,ォジヌェ ャヌット ェ,マャ,チナエヒネソキツテ トホヲヲミーァ

            How do I collapse sections of code in Visual Studio Code for Windows?