sql >> Database >  >> RDS >> Mysql

Selecteer Max. gegevens van subquery SQL, maar het toont alle resultaten van subquery

1e oplossing met where staat:

SELECT t1.valuesum, t1.codebook
FROM (
        SELECT SUM( s.value ) AS valuesum, s.codebook
        FROM stock s
        GROUP BY s.codebook
     ) t1
WHERE t1.valuesum in (SELECT MAX( t2.valuesum ) AS total
                     FROM (
                             SELECT SUM( s2.value ) AS valuesum, s2.codebook
                             FROM stock s2
                             GROUP BY s2.codebook
                           )t2
                     ) 

SQL Fiddle Demo

2e oplossing met having staat:

SELECT max(t1.valuesum), t1.codebook
FROM (
        SELECT SUM( s.value ) AS valuesum, s.codebook
        FROM stock s
        GROUP BY s.codebook
     ) t1
GROUP BY t1.codebook
HAVING max(t1.valuesum) = (SELECT MAX( t2.valuesum ) AS total
                     FROM (
                             SELECT SUM( s2.value ) AS valuesum, s2.codebook
                             FROM stock s2
                             GROUP BY s2.codebook
                           )t2
                     )

SQL Fiddle Demo



  1. hoe het wachtwoord van de rootgebruiker in de MySQL-workbench opnieuw in te stellen

  2. Is het mogelijk om gegevenscontrole in MySQL af te dwingen met behulp van reguliere expressie?

  3. Records van de afgelopen 30 dagen ophalen

  4. Wat is de manier om een ​​eenvoudige relationele database leraar-onderwerp-student-batch te ontwerpen?