sql >> Databáze >  >> RDS >> Mysql

Vyberte Max Data z poddotazu SQL, ale zobrazí všechny výsledky z poddotazu

1. řešení pomocí where podmínka:

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

2. řešení pomocí having podmínka:

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. Dynamicky generujte výraz lambda s konstantami z proměnných

  2. Jak zajistit, aby spouštěč PostgreSQL a C# Windows Service spolupracovaly?

  3. Importujte soubor CSV do tabulky SQLite

  4. Pokud by tento ER diagram používal místo toho ternární vztah