sql >> Databasteknik >  >> RDS >> Mysql

Hur man SELECT baserat på värdet av en annan SELECT

Du kan beräkna totalsumman (och därifrån den önskade procentsatsen) genom att använda en underfråga i FROM-satsen:

SELECT Name,
       SUM(Value) AS "SUM(VALUE)",
       SUM(Value) / totals.total AS "% of Total"
FROM   table1,
       (
           SELECT Name,
                  SUM(Value) AS total
           FROM   table1
           GROUP BY Name
       ) AS totals
WHERE  table1.Name = totals.Name
AND    Year BETWEEN 2000 AND 2001
GROUP BY Name;

Observera att underfrågan inte har WHERE-satsen som filtrerar åren.



  1. Oracle PL/SQL - Öka användardefinierat undantag med anpassad SQLERRM

  2. Unik nyckel i Oracle med exempel

  3. Undviker JTextField setTextupprepning runt programmet

  4. Spelar VARCHAR-storleksgränsen någon roll?