select the database, getting all the maximum values of a column











up vote
0
down vote

favorite












I have the following table:



id | value | data | v
1 | val1 | dat1 | 1
2 | val1 | dat2 | 2
3 | val1 | dat3 | 3
4 | val2 | dat4 | 1


What I do is grab the data, each value, which has higher v.
No what I mean ..



Sql output I would like:



id | value | data | v
3 | val1 | dat3 | 3
4 | val2 | dat4 | 1









share|improve this question




























    up vote
    0
    down vote

    favorite












    I have the following table:



    id | value | data | v
    1 | val1 | dat1 | 1
    2 | val1 | dat2 | 2
    3 | val1 | dat3 | 3
    4 | val2 | dat4 | 1


    What I do is grab the data, each value, which has higher v.
    No what I mean ..



    Sql output I would like:



    id | value | data | v
    3 | val1 | dat3 | 3
    4 | val2 | dat4 | 1









    share|improve this question


























      up vote
      0
      down vote

      favorite









      up vote
      0
      down vote

      favorite











      I have the following table:



      id | value | data | v
      1 | val1 | dat1 | 1
      2 | val1 | dat2 | 2
      3 | val1 | dat3 | 3
      4 | val2 | dat4 | 1


      What I do is grab the data, each value, which has higher v.
      No what I mean ..



      Sql output I would like:



      id | value | data | v
      3 | val1 | dat3 | 3
      4 | val2 | dat4 | 1









      share|improve this question















      I have the following table:



      id | value | data | v
      1 | val1 | dat1 | 1
      2 | val1 | dat2 | 2
      3 | val1 | dat3 | 3
      4 | val2 | dat4 | 1


      What I do is grab the data, each value, which has higher v.
      No what I mean ..



      Sql output I would like:



      id | value | data | v
      3 | val1 | dat3 | 3
      4 | val2 | dat4 | 1






      php mysql sql






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Nov 11 at 6:51









      Cœur

      17.1k9102140




      17.1k9102140










      asked May 13 '13 at 21:36









      Aitor Chicharro

      2829




      2829
























          2 Answers
          2






          active

          oldest

          votes

















          up vote
          4
          down vote



          accepted










          You need to identify the max value in a subquery and then join against the constant element



          Fiddle



          select * 
          from
          Table1
          join
          (select max(v) MAXV, value from Table1 group by value) T
          on T.MAXV = Table1.v and T.value=Table1.value





          share|improve this answer





















          • works! thanks!!
            – Aitor Chicharro
            May 13 '13 at 22:06


















          up vote
          0
          down vote













          As gillyspy already commented, what you need is a subquery that returns the correct values. Check this code:



          SELECT id, table1.value, data, v
          FROM Table1
          JOIN (SELECT MAX(v) MAXV, value
          FROM Table1
          GROUP BY value
          ) T ON T.MAXV = Table1.v
          AND T.value = Table1.value;





          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',
            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%2f16531573%2fselect-the-database-getting-all-the-maximum-values-of-a-column%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








            up vote
            4
            down vote



            accepted










            You need to identify the max value in a subquery and then join against the constant element



            Fiddle



            select * 
            from
            Table1
            join
            (select max(v) MAXV, value from Table1 group by value) T
            on T.MAXV = Table1.v and T.value=Table1.value





            share|improve this answer





















            • works! thanks!!
              – Aitor Chicharro
              May 13 '13 at 22:06















            up vote
            4
            down vote



            accepted










            You need to identify the max value in a subquery and then join against the constant element



            Fiddle



            select * 
            from
            Table1
            join
            (select max(v) MAXV, value from Table1 group by value) T
            on T.MAXV = Table1.v and T.value=Table1.value





            share|improve this answer





















            • works! thanks!!
              – Aitor Chicharro
              May 13 '13 at 22:06













            up vote
            4
            down vote



            accepted







            up vote
            4
            down vote



            accepted






            You need to identify the max value in a subquery and then join against the constant element



            Fiddle



            select * 
            from
            Table1
            join
            (select max(v) MAXV, value from Table1 group by value) T
            on T.MAXV = Table1.v and T.value=Table1.value





            share|improve this answer












            You need to identify the max value in a subquery and then join against the constant element



            Fiddle



            select * 
            from
            Table1
            join
            (select max(v) MAXV, value from Table1 group by value) T
            on T.MAXV = Table1.v and T.value=Table1.value






            share|improve this answer












            share|improve this answer



            share|improve this answer










            answered May 13 '13 at 21:49









            gillyspy

            1,345713




            1,345713












            • works! thanks!!
              – Aitor Chicharro
              May 13 '13 at 22:06


















            • works! thanks!!
              – Aitor Chicharro
              May 13 '13 at 22:06
















            works! thanks!!
            – Aitor Chicharro
            May 13 '13 at 22:06




            works! thanks!!
            – Aitor Chicharro
            May 13 '13 at 22:06












            up vote
            0
            down vote













            As gillyspy already commented, what you need is a subquery that returns the correct values. Check this code:



            SELECT id, table1.value, data, v
            FROM Table1
            JOIN (SELECT MAX(v) MAXV, value
            FROM Table1
            GROUP BY value
            ) T ON T.MAXV = Table1.v
            AND T.value = Table1.value;





            share|improve this answer

























              up vote
              0
              down vote













              As gillyspy already commented, what you need is a subquery that returns the correct values. Check this code:



              SELECT id, table1.value, data, v
              FROM Table1
              JOIN (SELECT MAX(v) MAXV, value
              FROM Table1
              GROUP BY value
              ) T ON T.MAXV = Table1.v
              AND T.value = Table1.value;





              share|improve this answer























                up vote
                0
                down vote










                up vote
                0
                down vote









                As gillyspy already commented, what you need is a subquery that returns the correct values. Check this code:



                SELECT id, table1.value, data, v
                FROM Table1
                JOIN (SELECT MAX(v) MAXV, value
                FROM Table1
                GROUP BY value
                ) T ON T.MAXV = Table1.v
                AND T.value = Table1.value;





                share|improve this answer












                As gillyspy already commented, what you need is a subquery that returns the correct values. Check this code:



                SELECT id, table1.value, data, v
                FROM Table1
                JOIN (SELECT MAX(v) MAXV, value
                FROM Table1
                GROUP BY value
                ) T ON T.MAXV = Table1.v
                AND T.value = Table1.value;






                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered May 13 '13 at 21:54









                Yaroslav

                5,493103576




                5,493103576






























                    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.





                    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.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f16531573%2fselect-the-database-getting-all-the-maximum-values-of-a-column%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

                    Florida Star v. B. J. F.

                    Danny Elfman

                    Lugert, Oklahoma